【问题标题】:How to get a JS Date object from a UTC timestamp如何从 UTC 时间戳获取 JS Date 对象
【发布时间】:2014-10-25 16:29:24
【问题描述】:

我从文档说的 POCO 库中获取了我的 UTC 时间戳:

返回以基于 UTC 的时间表示的时间戳。 UTC 基准​​时间为 1582 年 10 月 15 日午夜。分辨率为 100 纳秒。

有了这个,我可以做类似的事情

// utctime = 136288658313819610
d = new Date(0);
d.setUTCMilliseconds(utctime / 1000 / 10);
// d = Date 2401-11-18T12:03:51.381Z

当使用当前的 utctime 时,生成的日期是 2401 年的某个时间,这似乎与 1582 年的纪元差不多。

要将其转换为正确的 UTC 时间,我需要使用一些表示时代差异的负值初始化 Date,但我无法找到这样的值。

我还需要将 UTC 时间转换为本地时间以获得有用的结果,但为此我必须默认初始化 Date 对象,对吗?也许这可以通过减法来完成?

【问题讨论】:

    标签: javascript date timestamp utc


    【解决方案1】:

    我想通了!您可以手动设置纪元,而无需计算纪元的精确秒差。时区可通过 getTimezoneOffset 获得。

    // utctime = 136288807241160530
    d = new Date();
    d.setFullYear(1582);
    d.setMonth(9);
    d.setDate(15);
    d.setHours(0);
    d.setMinutes(-d.getTimezoneOffset());
    d.setSeconds(0);
    d.setMilliseconds(utctime / 1000 / 10);
    // d = Date 2014-09-01T16:12:04.116Z
    

    【讨论】:

      猜你喜欢
      • 2014-11-21
      • 2019-05-02
      • 1970-01-01
      • 2011-12-08
      • 2011-05-21
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      相关资源
      最近更新 更多