.Net使用JavaScript获取ISO8601日期格式

时间:2015-02-03 13:42:40

标签: javascript .net mongodb datetimeoffset

我在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

1 个答案:

答案 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字符串。