【发布时间】:2013-02-08 12:06:59
【问题描述】:
我有一个在 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(正确)
时区:纽芬兰-03:30(正确)
时区:中国+08:00(正确)
时区:伊朗+03:30(不正确!)
(请注意 19 Mar 和 23:00:00 和 日光 与 标准)
(我在 Chrome 中测试过同样的问题)
我已经用这个解决方案解决了这个问题:
new Date( Date.UTC(2005, 2, 20) );
但我想知道这里发生了什么?+03:30 有什么错误吗?日光和标准有什么区别?
这很奇怪......
【问题讨论】:
-
您对夏令时 (DST) 很熟悉吧?看起来 DST 发生在伊朗的 3 月 19 日晚上。
-
我的意思是为什么会出现这个问题?
-
他们改变了 2006 年 DST 的观察方式。en.wikipedia.org/wiki/Daylight_saving_time_in_Iran
标签: javascript date timezone