不同时区的JavaScript日期值

时间:2012-02-03 15:11:17

标签: javascript asp.net wcf date

我正在使用从ASP.net返回的JavaScript日期,这当然是非常奇怪/日期(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)

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Javascript根据浏览器的时区提供时间。因此,当您更改系统时钟时,机器时间与GMT之间的时差会发生变化。这种差异出现在GMT之后的数字