我有一个在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/