在 momentjs 中处理 DST 的问题

Issue with handling DST in momentjs

我有一个关于在 momentjs 中处理 DST 的问题。

假设我目前处于 GMT+1 时区并遵守标准(冬季)时间,因此我的 UTC 偏移量为 +01:00。如果我执行: moment('2018-02-26T10:12:00+01:00').format('LLL') 如我所料,我会得到 "26 February 2018 10:12"

但是,如果我执行 moment('2018-04-26T10:12:00+01:00').format('LLL')(所以日期在夏令时期间内)我将得到 "26 April 2018 11:12" 所以看起来 momentjs 没有考虑 DST 开关,这将发生在现在和那个日期之间。

这实际上是预期的行为吗?

这确实是预期的行为,Moment 工作正常。

您在 +01:00 的输入时间中指定了偏移量,但当时在您当地时区有效的偏移量实际上是 +02:00(假设大多数欧洲地方在 CET/CEST).因此,您描述的瞬间是一个小时,因此您的结果是一个小时。

如果您省略输入中的偏移量,您会看到 Moment 的行为符合您的预期。