2016-06-09 81 views
1

所有:了解日期字符串

当我从建立像绳子Date对象:

var dt = new Date("2016-05-31 07:35:22+02:00"); 

我不知道该字符串意味着什么?我认为这意味着它的地理当地时间是7:35:22而GMT是9:35:22,但是当我使用dt.toUTCString()时,我得到了

“2016年5月31日星期二05:35 :22 GMT“

,这是如此混乱。我想知道哪一部分是错的?

感谢

+0

您已经发布的时间是UTC提前2小时(+2':00'),因此,当你得到它作为UTC,比给定值落后两个小时。 05:35 + 00 = 07:35 + 2:00。所以,这里一点都没有错。 – ManoDestra

回答

1

的+2:00部分告诉你,这个地方时间是在一个时区/ DST目前比UTC时间提前2小时。因此,您需要从此时间减去两个小时才能达到UTC时间。所以,07:35 + 2:00 = 05:35 + 0:00。根本没有什么错误。

延伸阅读:

http://www.timeanddate.com/time/time-zones.html

http://www.w3schools.com/js/js_date_formats.asp

http://joshowens.me/dealing-with-timezones-in-javascript/

+0

谢谢,你能告诉我Date()接受多少时间的字符串格式吗? – Kuan

+0

有几个,但最好在给定跨格式字符串的跨浏览器/区域兼容性问题的情况下,使用新日期(年,月,日)实例化JavaScript Date对象。或者使用Moment.js。 – ManoDestra

1

这意味着,当前本地时间是7点35分22秒,地点是比格林尼治时间早2小时。

这就是为什么UTC是为显示比时间

+0

谢谢,你能告诉我有多少时间字符串格式可以Date()接受? – Kuan

+0

您可以使用您编写的格式而不是+02:00添加任何数字。你可以在这里阅读更多:http://www.w3schools.com/jsref/jsref_obj_date.asp – AlexD

1

的+02早两小时。00在结束意味着您所提供的时间为2小时提前 UTC的。

因此,如果UTC是05:30,UTC + 1为06:30,UTC + 2是07:30等

+0

谢谢,你能告诉我有多少时间字符串格式可以Date()接受? – Kuan