我已经为此战斗了一段时间。我正在尝试将纪元转换为日期对象。时代以UTC发送给我。每当您经过new Date()一个纪元时,它就会假定它是本地纪元。我尝试创建一个UTC对象,然后使用setTime()它来将其调整为适当的纪元,但是似乎有用的唯一方法是toUTCString()字符串对我没有帮助。如果我将该字符串传递给新日期,则应该注意它是UTC,但不是。
new Date()
setTime()
toUTCString()
new Date( new Date().toUTCString() ).toLocaleString()
我的下一个尝试是尝试获取本地当前时间段与UTC当前时间段之间的差异,但是我也无法做到这一点。
new Date( new Date().toUTCString() ).getTime() - new Date().getTime()
它只给我很小的差异,不到1000,以毫秒为单位。
有什么建议?
我想我有一个更简单的解决方案- 将初始日期设置为纪元并添加UTC单位。假设您有一个以秒为单位存储的UTC纪元变量。如何1234567890。要将其转换为当地时区的正确日期:
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)
d
Fri Feb 13 2009 18:31:30 GMT-0500 (EST)