在 momentjs 中处理 DST 的问题
Posted
技术标签:
【中文标题】在 momentjs 中处理 DST 的问题【英文标题】:Issue with handling DST in momentjs 【发布时间】:2018-08-05 20:43:56 【问题描述】:我有一个关于。
假设我目前处于 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')
(所以日期在 DST 期间)我会得到 "26 April 2018 11:12"
所以看起来 momentjs 没有考虑从现在到那个之间发生的 DST 切换日期。
这实际上是预期的行为吗?
【问题讨论】:
【参考方案1】:这确实是预期的行为,并且 Moment 工作正常。
您已在输入时间中指定了偏移量+01:00
,但当时在您当地时区中有效的偏移量实际上是+02:00
(假设大多数欧洲地方在 CET/CEST)。因此,您描述的瞬间是一个小时的休息时间,因此您的结果是一个小时的休息时间。
如果您从输入中省略偏移量,您将看到 Moment 的行为符合您的预期。
【讨论】:
以上是关于在 momentjs 中处理 DST 的问题的主要内容,如果未能解决你的问题,请参考以下文章
ConvertTimeFromUtc() 和 ToUniversalTime() 是不是处理 DST?