我尝试按照 moment.js 指定eastern 8
时区。
我将操作系统时区更改为western 4
,然后输入相同的时间戳,如下所示。
moment().utcOffset(-240);
moment(1473998400000).toDate();
moment().utcOffset(480);
moment(1473998400000).toDate();
// both output >>> Fri Sep 16 2016 00:00:00 GMT-0400 (EDT)
但我无法理解为什么我也从不同的初始时区获得相同的输出?
我做错了什么:(
答案 0 :(得分:2)
<强>更新:强>
首先,请勿使用.toDate()
,否则您将收到一个JavaScript Date
对象,您必须自行转换。
其次,您需要在初始化的时刻对象上调用.utcOffset()
。
moment(1473998400000).utcOffset(-240).format(); // 2016-09-16T00:00:00-04:00
moment(1473998400000).utcOffset(480).format(); // 2016-09-16T12:00:00+08:00
另外,请查看docs:
中的以下摘录如果你想要一个实际的时区 - 特定地点的时间,比如 America / Los_Angeles,请考虑moment-timezone。