将JavaScript ISO 8601字符串转换为Date对象

时间:2014-03-03 16:04:17

标签: javascript parsing datetime timezone iso8601

在浏览器的JavaScript控制台中考虑以下两个片段(我已尝试使用Google Chrome)

第一声明:

s = "2014-03-03 18:30:00";
d = new Date(s);
// Mon Mar 03 2014 18:30:00 GMT+0100 (CET)

第二声明:

s = "2014-03-03T18:30:00";
d = new Date(s);
// Mon Mar 03 2014 19:30:00 GMT+0100 (CET)

请参阅?解析的日期和时间对我来说有一个小时的不同,因为我住的是UTC + 1。

但是为什么JavaScript Date对象以不同的方式解析这两个字符串,因为根本没有给出时区?

1 个答案:

答案 0 :(得分:1)

  • 2014-03-03T...符号是一个花哨的JavaScript Date Time String Format并且需要一个时区。如果您不提供,则默认为Z(UTC)。

  • 然而,2014-03-03 18:30:00表示法只是一个没有有趣名称的常规字符串,如果您没有提供时区,则会假设当地时间。

此信息来自MDN article about Date.parse()