我有一组日期和时间,它的格式如下:将日期字符串转换为带日期的ISO日期
01.07.2013 16:10
。
我知道我必须重新安排,以配合ISO标准,所以我设法用这样的字符串结束:
2013-07-01T16:10
。
由此,我需要创建一个Date
对象。在阅读关于此的许多问题后,我对如何添加时区有点困惑。所有的时间都在纽约当地时间的城市,我也想把日期存储在里面。
所以既然Javascript从我的机器上取时区,我就把它改成了纽约的那个时区。但是,下面的部分混淆了我最:
> print(new Date("2013-07-01T16:10"))
Mon Jul 01 2013 16:10:00 GMT+2000 (EDT)
问:为什么它说GMT + 2000年的时候我的本地时间为GMT-0400(NYC的一个)?它是否正确'?如果不是,这是如何正确完成的?
- 更新: 我使用mongoDB 3.4.4
和解释器版本是MozJS-38
。 systemsetup -gettimezone
返回America/New_York
。在chrome中运行mongo-express显示:Mon Jul 01 2013 06:00:00 GMT+0200 (EDT)
为ISODate("2013-07-01T04:00:00.000Z")
存储,但shell说Tue Jul 02 2013 00:00:00 GMT+2000 (EDT)
为print(new Date("2013-07-01T04:00:00.000Z"));
。
你确定它确切地说'“GMT + 2000”'?如果是这样,你的机器的时区数据已损坏。世界上没有比格林威治时间早20小时的地方。此外,纽约将采用该格式的“GMT-0400”。你确定你不是在这里打零吗? –
是的,我确定。是的,我也希望它是'“GMT-0400”'。我正在使用MacOS,在更改时区后未重新启动。也许这是原因。 – ffritz
好的,但你*写了''“GMT-4000”',所以你在错误的位置有零。你确定你没有使用'GMT + 2000''吗?你的意思是'“GMT + 0200”'? –