【问题标题】:.Net Ticks to ISO 8601 Date format using JavaScript.Net 使用 JavaScript 转换为 ISO 8601 日期格式
【发布时间】:2015-02-03 13:42:40
【问题描述】:

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

[635519027206007023,0]

我需要将其转换为 ISO 8601 格式,如下所示。

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

【问题讨论】:

    标签: javascript .net mongodb datetimeoffset


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      相关资源
      最近更新 更多