gpt4 book ai didi

javascript - 为什么在 Moment js 中的 mor ISO 8601 上一天休息 1 小时?

转载 作者:行者123 更新时间:2023-11-30 09:44:04 26 4
gpt4 key购买 nike

对于 ISO 8601 字符串,我正在使用 Moment js,目前正在执行 moment("2014-05-08T00:20:40Z").format("HH:mm:ss") 以只需获取 "00:20:40" 的字符串时间,bu

最佳答案

您的 ISO 日期是 UTC 日期。这就是最后的 Z 的意思。所以你在 UTC 以西 7 个时区。

您开始的时间是 8 号午夜后 20 分钟。如果您在法国巴黎运行您的代码,您会得到正确的答案(忽略“夏令时”调整)。但是,由于您位于西部 7 个时区,因此您在下午 5:20 时,仍处于前一个日历日。

从一种 Angular 来看,没有什么可以“解决”的。基于您所在位置的本地时间版本表示与原始 ISO UTC 时间相同的时间点。一切正常;日期值的默认表示是本地时间。 JavaScript 中的 Date 原语对象有 API 可以访问 UTC 术语中的组件,如果你想那样的话。

如果您想取回原始 ISO 字符串,可以使用 .toISOString():

moment("2014-05-08T00:20:40Z").toISOString()

或者,您可以在格式字符串中包含时区标记:

moment("2014-05-08T00:20:40Z").format("HH:mm:ss zz")

(请注意,格式字符串中的“z”与ISO时间中的“Z”的含义不同。它只是格式特殊字符,来自单词“zone”的第一个字母。在ISO 字符串,它是单词“zero”的第一个字母,表示时间与 UTC 时间的偏移量为零。有些人称它为“Zulu Time”,因为那个“Z”。)

关于javascript - 为什么在 Moment js 中的 mor ISO 8601 上一天休息 1 小时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39736405/

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