时刻时区和 DST

问题描述 投票:0回答:2

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

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

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

node.js timezone momentjs dst
2个回答
17
投票

是的,

moment.tz()
支持夏令时。 docs对此有明确说明:

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);
<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>


0
投票

这个检查 DST 时间的代码对我有用。

import moment from "moment-timezone";
const isDST = moment.tz('America/New_York').isDST();
console.log(isDST);
© www.soinside.com 2019 - 2024. All rights reserved.