将UTC Epoch转换为本地日期

我现在一直在为此而战。 我试图将时代转换为日期对象。 时代以UTC发送给我。 每当你传递new Date()一个时代时,它就认为它是本地时代。 我尝试创建UTC对象,然后使用setTime()将其调整到适当的时期,但唯一似乎有用的方法是toUTCString()和字符串不帮助我。 如果我将该字符串传递到新的日期,它应该注意到它是UTC,但它不。

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

我的下一个尝试是尝试获取本地当前时代与UTC当前时代之间的差异,但我无法获得。

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

它只给我非常小的差异,在1000以下,这是毫秒。

有什么建议么?


我想我有一个更简单的解决方案 - 将初始日期设置为纪元并添加UTC单位。 假设您有一个以秒为单位存储的UTC时代var。 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)


很简单, new Date()只需要几毫秒,例如

new Date(1394104654000)
> Thu Mar 06 2014 06:17:34 GMT-0500 (EST)

而对于日志,我使用了Moment.js库,我仍然使用它进行格式化。

moment.utc(1234567890000).local()
>Fri Feb 13 2009 19:01:30 GMT-0430 (VET)
链接地址: http://www.djcxy.com/p/18487.html

上一篇: Convert UTC Epoch to local date

下一篇: Initialize a datetime object with seconds since epoch