我已经为此挣扎了一段时间。我正在尝试将epoch转换为日期对象。纪元以UTC格式发送给我。无论何时向new Date()传递一个epoch,它都假定它是本地epoch。我尝试创建一个UTC对象,然后使用setTime()将其调整为适当的epoch,但唯一有用的方法是toUTCString()和字符串对我没有帮助。如果我将这个字符串传递给一个新的日期,它应该注意到它是UTC,但它没有。
new Date( new Date().toUTCString() ).toLocaleString()
我的下一个尝试是试图获得本地当前epoch和UTC当前epoch之间的差异,但我也无法得到。
new Date( new Date().toUTCString() ).getTime() - new Date().getTime()
它只给了我非常小的差别,在1000以下,单位是毫秒。
有什么建议吗?
将当前以[ms]为单位的epoch时间转换为24小时时间。您可能需要指定禁用12小时格式的选项。
$ node.exe -e "var date = new Date(Date.now()); console.log(date.toLocaleString('en-GB', { hour12:false } ));"
2/7/2018, 19:35:24
或作为JS:
var date = new Date(Date.now());
console.log(date.toLocaleString('en-GB', { hour12:false } ));
// 2/7/2018, 19:35:24
console.log(date.toLocaleString('en-GB', { hour:'numeric', minute:'numeric', second:'numeric', hour12:false } ));
// 19:35:24
注意:这里使用的en-GB,只是一个使用24小时格式的地方的(随机)选择,它不是您的时区!