Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript将.Net标记转换为ISO 8601日期格式_Javascript_.net_Mongodb_Datetimeoffset - Fatal编程技术网

使用JavaScript将.Net标记转换为ISO 8601日期格式

使用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

我正在MongoDB中保存DateTimeOffset对象。Mongo驱动程序将DateTimeOffset系列化如下

[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字符串