将日期字符串转换为带有时区的ISO日期

时间:2017-05-31 15:43:36

标签: javascript mongodb date datetime

我有一组日期和时间,格式如下:

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-0400(纽约市)时,为什么说GMT + 2000?它是否正确'?如果没有,这怎么做得恰到好处?

- 更新: 我使用的是mongoDB 3.4.4,解释器版本是MozJS-38systemsetup -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"));

1 个答案:

答案 0 :(得分:2)

创建Date对象时,您没有指定时区偏移量。

> new Date("2013-07-01T16:10-04:00")
2013-07-01T20:10:00.000Z