时刻时区和夏令时

Hum*_*awi 2 timezone dst node.js momentjs

我正在使用此代码获取特定时区的 GMT 差异:

var TimeZone = 'America/New_York';
console.log('GMT Offset  ' + moment().tz(TimeZone).utcOffset().toString());
Run Code Online (Sandbox Code Playgroud)

这段代码也会考虑夏令时吗?

Mar*_*yer 5

是的,moment.tz()知道夏令时。该文档是明确一下:

moment.tz构造函数将所有相同的参数时刻构造,但使用的最后一个参数的时区标识符
...
此构造函数可识别 DST,并在解析时使用正确的偏移量。

var TimeZone = 'America/New_York';
console.log('Winter GMT Offset  ' + moment.tz('2018-12-04', TimeZone).utcOffset()/60);
console.log('Summer GMT Offset  ' + moment.tz('2018-06-04', TimeZone).utcOffset()/60);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data-2012-2022.min.js"></script>
Run Code Online (Sandbox Code Playgroud)