gpt4 book ai didi

javascript - 如何使用 MomentJS 和时区显示考虑偏移的日期时间

转载 作者:行者123 更新时间:2023-12-02 14:15:19 28 4
gpt4 key购买 nike

我使用带有时区的 moment.js 来创建属于特定时区的日期时间:

var datetime = moment.tz("2016-08-16 21:51:28","Europe/London");

因为这个构造函数知道 DST(夏令时),moment.js 将自动添加 +1 小时偏移量。 datetime.format() 将显示:2016-08-16T21:51:28+01:00

但是打印日期时似乎没有考虑偏移量。例如。 datetime.format('DD.MM.YYYY - HH:mm:ss') 将显示:16.08.2016 - 21:51:28 但我不想要它显示:16.08.2016 - 22:51:28(考虑 DST 偏移 1 小时的时间)。有谁知道该怎么做吗?

最佳答案

您误解了获得的输出。

当您在 ISO8601 时间戳末尾看到 +01:00 时,并不意味着您需要添加一个小时。这意味着给定的时间戳位于本地时区,该时区比 UTC 早一小时。时刻并不是增加一个小时。它只是反射(reflect)伦敦本地时间。

对于您提供的时间戳,显示 22:51:28 将是一个错误。伦敦本地时间为 21:51:28,等效 UTC 时间为 20:51:28。除非您向东走了一个时区(UTC+2),否则您不会找到 22:51:28

现在,如果您想要要做的是将从 UTC 转换为伦敦时间,那么您需要将输入创建为 UTC,然后进行转换。

moment.utc("2016-08-16 21:51:28").tz("Europe/London")

然后你在格式化时会得到22:51:28,这是你要求的结果,但这是一个不同的时间点。

关于javascript - 如何使用 MomentJS 和时区显示考虑偏移的日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39081725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com