小编典典

将UTC纪元转换为本地日期

javascript

我已经为此战斗了一段时间。我正在尝试将纪元转换为日期对象。时代以UTC发送给我。每当您经过new Date()一个纪元时,它就会假定它是本地纪元。我尝试创建一个UTC对象,然后使用setTime()它来将其调整为适当的纪元,但是似乎有用的唯一方法是toUTCString()字符串对我没有帮助。如果我将该字符串传递给新日期,则应该注意它是UTC,但不是。

new Date( new Date().toUTCString() ).toLocaleString()

我的下一个尝试是尝试获取本地当前时间段与UTC当前时间段之间的差异,但是我也无法做到这一点。

new Date( new Date().toUTCString() ).getTime() - new Date().getTime()

它只给我很小的差异,不到1000,以毫秒为单位。

有什么建议?


阅读 465

收藏
2020-04-25

共1个答案

小编典典

我想我有一个更简单的解决方案-
将初始日期设置为纪元并添加UTC单位。假设您有一个以秒为单位存储的UTC纪元变量。如何1234567890。要将其转换为当地时区的正确日期:

var utcSeconds = 1234567890;
var d = new Date(0); // The 0 there is the key, which sets the date to the epoch
d.setUTCSeconds(utcSeconds);

d 现在是一个日期(在我的时区中)设置为 Fri Feb 13 2009 18:31:30 GMT-0500 (EST)

2020-04-25