【问题标题】:JavaScript - Converting local time to UTC or country specific timeJavaScript - 将本地时间转换为 UTC 或国家特定时间
【发布时间】:2016-02-22 03:00:04
【问题描述】:

我正在构建一个调度程序应用程序。前端是使用 JavaScript 开发的,在后端我们使用带有 SQL 服务器的 .NET。

将要求用户选择一个时间(这将是他机器的本地时间)。我想将该时间转换为东部标准时间。

调度程序应用程序将基于 EST 运行。

我将保存用户选择的本地时间、用户的时区信息和用户选择的时间的美国东部标准时间。

我可以通过fiddle获取时区

var tz = jstz.determine();
console.log(tz.name());

为了获得 EST 等效时间,我将使用 TimeZoneInfo 类 当 DST 更改发生时,我将有一个存储过程来更新相应的 EST 时间。

让我知道这是否有效?

【问题讨论】:

  • 国家时区实际上是在谈论一些不存在的东西。美国有 4 个时区……那是哪一个?我建议您只使用时区
  • @ErikPhilips:因为我将从 newwork 运行服务器,所以我提到了东部时间。因此,如果我们以 EST 作为基准时区,我的方法应该是什么?
  • 你很喜欢asked the same thing yesterday。如果您想要更具体的东西,那么您需要在询问中更具体。显示一些代码。什么有效,什么无效,你期望什么,等等。
  • 而且仅供参考,如果您的解决方案完全取决于服务器的时区,那么您将遇到问题。
  • @MattJohnson:我已经更新了我的问题。请让我知道你的想法。

标签: javascript c# timezone


【解决方案1】:

使用这个

var utc_date = new Date().toISOString();

它将返回一个 UTC 格式的字符串,例如 2015-11-19T19:41:45.865Z

【讨论】:

  • 如果你是 C# 或 C++ 方面的专家,那么你可以申请所需的时区
  • 如果你有其他一些复杂的时区转换可以使用这个库momentjs.com/timezone
  • 我不知道谁投了我的票,但我只想问你能告诉我原因吗?
  • 我没有对此投反对票,但我认为这是因为 OP 询问是否使用特定时区进行转换,不一定是用户的本地时区。跨度>
  • 他说这个`我想把那个时间转换成UTC或者一个国家特定的时区, so I supposed that he can send UTC date string to backend and then he can apply timezone. I answered as he asked in first part 我想把那个时间转换成UTC`
【解决方案2】:

将要求用户选择一个时间(这将是他机器的本地时间)。

没关系。对于日程安排应用来说,这是有道理的。

我想把那个时间转换成东部标准时间。

调度程序应用程序将基于 EST 运行。

这不是一个好主意。服务器的位置应该无关紧要。特别是,美国东部时间在 EST 和 EDT 之间波动。以 EST 为基础只会考虑其中的一半,而以 ET 为基础则意味着要处理代码中的波动。

一般来说,您的服务器应该设置为 UTC,但在服务器上运行的代码不应该关心服务器设置为哪个时区。

在服务器上使用DateTime.UtcNow 来获取当前的UTC 时间。无论服务器的时区如何,该值都是相同的。

我将保存用户选择的本地时间、用户的时区信息和用户选择的时间的美国东部标准时间。

前两个是的。第三,您应该存储 UTC 等效值 - 而不是 EST 等效值。

如果在事件发生之前时区规则发生变化,您还需要准备重新计算 UTC 值。

我可以通过使用以下小提琴来获取 TimeZone ...

jstz 会猜测用户的时区 - 但这只是猜测。这很可能是错误的。从时区列表中选择默认选项非常有用,但不应以用户无法覆盖的方式直接使用。

此外,它还返回一个 IANA TZDB 标识符,例如 America/Los_Angeles。这些目前不适用于 Windows 上的 TimeZoneInfo。要使用这些,您需要在 C# 代码中使用 Noda Time

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2018-07-27
    相关资源
    最近更新 更多