【发布时间】:2012-12-30 23:14:47
【问题描述】:
根据维基百科的ISO-8601 文章(我知道,来源不好)...
如果没有给出带有时间表示的 UTC 关系信息,则假定时间为本地时间。
所以,例如..给定:
- var a = Date.parse("2012-03-21");
- var b = Date.parse("2012-03-21T00:00");
- var c = Date.parse("2012-03-21T00:00Z");
我希望“a”和“b”是本地时间(浏览器的时区),而“c”是 UTC。但是,a、b 和 c 都是等价的 (1332288000000)。所有值都被解析为 UTC。
ECMAScript 规范也明确指出:
15.9.1.15 日期时间字符串格式
缺席时区偏移的值为“Z”。
为什么会出现这种差异?维基百科不正确还是 ECMAScript 规范不正确?如何在浏览器中将 ISO-8601 字符串解析为本地时间(不知道浏览器的时区)?
【问题讨论】:
-
好吧,也许浏览器时区实际上是UTC?
-
奇怪的评论。不,这是美国东部标准时间。
-
这条评论有什么奇怪的,如果你在英国,你的 localtime 和 UTC 会产生相同的结果......
标签: javascript date datetime ecmascript-5 iso8601