gpt4 book ai didi

javascript - 是否需要在使用 moment.js 的 UTC 转换中手动解析 DST?

转载 作者:行者123 更新时间:2023-11-30 16:55:22 25 4
gpt4 key购买 nike

我将 moment-timezone 的时间定义为希腊的 2015-06-05 10:00(UTC+2,DST = UTC+3)。然后我将它存储在 UTC 中供以后使用。

据我所知,当我使用 .local 取回本地日期时,它被转换为 UTC+2,忽略了它们现在处于 DST(夏令时)并且应该是 UTC+3 .

你可以在这里看到:

var moment = require('moment-timezone'),
myTime = moment.tz('2015-06-05 10:00', 'Europe/Athens')

myTime.format()
// '2015-06-05T10:00:00+03:00'
// OK, UTC+3

myTime.utc().format()
// '2015-06-05T07:00:00+00:00'
// OK, time changed to 7:00

myTime.local().format()
// '2015-06-05T09:00:00+02:00'
// ??? Why doesn't it take on account DST?

myTime.utc().local().format()
// '2015-06-05T09:00:00+02:00'
// Should it give back the initial value? It does not.

根据文档,我不清楚是否考虑了 DST。我错过了什么吗?您对此有何看法?

最佳答案

一些解释:

myTime = moment.tz('2015-06-05 10:00', 'Europe/Athens')

这将创建一个附加了时区信息的 moment 对象。

myTime.format()

这将使用该时区进行格式化。

myTime.utc().format()

这通过删除时区信息将 myTime 转换为 UTC。 这是一个破坏性的操作,它改变了 myTime 对象。所以时区信息丢失了。它与此类似:

myTime.utc();
myTime.format();

继续:

myTime.local().format()

这会禁用 myTime"is UTC" 标志,这意味着格式化时它将根据您自己的本地时区进行格式化(同样,这会更改 我的时间).

myTime.tz('Europe/Athens').format()

将返回您感兴趣的时区的正确时间戳,方法是将时区信息添加回 myTime 对象。

关于javascript - 是否需要在使用 moment.js 的 UTC 转换中手动解析 DST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29805667/

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