我在MongoDB中保存DateTimeOffset对象。 Mongo驱动程序将DateTimeOffset设置为以下内容。
[635519027206007023,0]
我需要将其转换为ISO 8601格式,如下所示。
2015-02-02T01:43:19+05:00
使用.NET DateTimeOffset类可以轻松完成转换。但是,在这种情况下,我使用JavaScript(Node.js)直接从MongoDB检索DateTimeOffset。因此,我最终检索长数组。
如何使用[635519027206007023,0]
将长篇2015-02-02T01:43:19+00:00
数组转换为ISO 8601格式JavaScript
?
答案 0 :(得分:2)
DateTimeOffset
类型的纪元是0000-01-01,而Javascript日期的纪元是1970-01-01。
1970-01-01日期的DateTimeOffset
刻度值为621355968000000000,因此您只需从该值中减去该值即可将其转换为Javascript时期。
DateTimeOffset
中的刻度是1/10000000秒,而Javascript日期中的刻度是1/1000秒,因此将值除以10000以将其转换为Javascript日期刻度。
因此,要从DateTimeOffset
刻度中获取Javascript日期:
new Date((date[0] - 621355968000000000) / 10000)
然后您可以使用toISOString
method将日期转换为ISO8601字符串。