【问题标题】:JavaScript date values in different timezones不同时区的 JavaScript 日期值
【发布时间】:2012-02-03 15:11:16
【问题描述】:

我正在处理从 ASP.net 返回的 JavaScript 日期,这当然是非常奇怪的 /Date(1328261701393)/ 事情。

所以我正在解析它并做......

var date = new Date(1328261701393);
console.log(date.toString()) // Fri Feb 03 2012 03:35:01 GMT-0600 (Central Standard Time)

当我将系统时钟更改为 EST 时,我得到...

Fri Feb 03 2012 04:35:01 GMT-0500 (US Eastern Standard Time)

我想我明白为什么会这样,但我不完全确定......

另外,我注意到当我传入一个实际的日期字符串时,比如...

console.log(new Date("2/1/2012 2:45:53 PM").toString());

我在 EST 和 CST 上的时间相同...

Wed Feb 01 2012 14:45:53 GMT-0600 (Central Standard Time)
Wed Feb 01 2012 14:45:53 GMT-0500 (US Eastern Standard Time)

这都是有道理的,我只是在寻找为什么?

【问题讨论】:

  • -0600 告诉解析器该时区适用于 UTC 的偏移量

标签: javascript asp.net wcf date


【解决方案1】:

Javascript 根据浏览器的时区给出时间。因此,当您更改系统时钟时,您的机器时间和 GMT 之间的时差会发生变化。这种差异在格林威治标准时间后出现在数字中

【讨论】:

    【解决方案2】:

    您应该使用 DateTime.ToUniversalTime() 方法来获取 UTC 时间,否则 .NET 将使用服务器的当前时区。 http://msdn.microsoft.com/en-us/library/system.datetime.touniversaltime.aspx

    【讨论】:

      【解决方案3】:

      时间戳(如1328261701393)与时区无关, 日期时间(如 2/1/2012 2:45:53 PM)取决于时区。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-29
        • 2023-04-03
        • 2016-08-16
        • 1970-01-01
        • 2015-04-20
        • 1970-01-01
        相关资源
        最近更新 更多