使用JavaScript将.Net标记转换为ISO 8601日期格式
我正在MongoDB中保存DateTimeOffset对象。Mongo驱动程序将DateTimeOffset系列化如下使用JavaScript将.Net标记转换为ISO 8601日期格式,javascript,.net,mongodb,datetimeoffset,Javascript,.net,Mongodb,Datetimeoffset,我正在MongoDB中保存DateTimeOffset对象。Mongo驱动程序将DateTimeOffset系列化如下 [635519027206007023,0] 我需要它转换成ISO8601格式如下 2015-02-02T01:43:19+05:00 可以使用.NET DateTimeOffset类的帮助轻松完成转换。但是,在本例中,我使用JavaScript(Node.js)直接从MongoDB检索DateTimeOffset。因此,我最终检索了long数组 如何使用JavaScrip
[635519027206007023,0]
我需要它转换成ISO8601格式如下
2015-02-02T01:43:19+05:00
可以使用.NET DateTimeOffset类的帮助轻松完成转换。但是,在本例中,我使用JavaScript(Node.js)直接从MongoDB检索DateTimeOffset。因此,我最终检索了long数组
如何使用
JavaScript
将long数组[635519027206007023,0]
转换为ISO 8601格式2015-02-02T01:43:19+00:00
?DateTimeOffset类型的历元是0000-01-01,而JavaScript日期的历元是1970-01-01
日期1970-01-01的DateTimeOffset
ticks值为62135596800000000,因此您可以从该值中减去该值,将其转换为Javascript历元
DateTimeOffset
中的刻度为1/10000000秒,而Javascript日期中的刻度为1/1000秒,因此将该值除以10000将其转换为Javascript日期刻度
因此,要从DateTimeOffset
ticks获取Javascript日期:
new Date((date[0] - 621355968000000000) / 10000)
然后可以使用将日期转换为ISO8601字符串