如何从UTC时间戳中获取JS Date对象

How to get a JS Date object from a UTC timestamp

本文关键字:获取 JS Date 对象 时间戳 UTC      更新时间:2023-09-26

我从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对象,对吧?也许这可以用减法来完成?

我想通了!您可以手动设置历元,而无需计算历元的精确秒差。时区可用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