我有一个在JavaScript中使用Date对象的程序。我注意到该程序在所有时区(国家/地区)均无法正常运行。

因此,我更改了Windows时区,并在特定日期得到了奇怪的结果。

有了这些代码行,我在许多时区中都得到了相同的结果,但是其中一个(也许是一些):

console.log( new Date( 2005, 2, 20 ) ); // 2005 Mar 20
console.log( new Date( 2006, 2, 20 ) ); // 2006 Mar 20



时区:UTC 00:00(正确)


时区:太平洋(美国和加拿大)-08:00(正确)


时区:Newfoundland -03:30(正确)


时区:中国+08:00(正确)


时区:伊朗+03:30(不正确!)


(请注意3月19日和23:00:00以及日光vs.标准)
(我已经在Chrome中测试了该问题,结果相同)

我已经通过以下解决方案解决了问题:

new Date( Date.UTC(2005, 2, 20) );


但是我想知道这里会发生什么吗?+03:30有任何错误吗?日光和标准之间有什么区别?

那真是怪了...

最佳答案

日期对象没有问题。一些国家在春季和秋季节节假日,以获取更多的夏令时。 Check Here。碰巧的是,在2005年3月20日,伊朗的时间受夏令时限制。正确地向您显示他们观察的时间(请注意,与GMT的区别从+0430变为+0330)。与2006年的那一天一样,它们遵循正常时间,并且没有夏令时。

请参阅评论中的“ Frits van Campen”链接。

关于javascript - JavaScript:特定时区中的日期对象错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14772215/

10-16 07:56