gpt4 book ai didi

timezone - 时刻 js 选择了错误的时区/偏移量,因此从 UTC 到本地时间的转换是不正确的

转载 作者:行者123 更新时间:2023-12-04 15:31:02 24 4
gpt4 key购买 nike

我已经阅读了几篇文章、momentjs 上的文档以及关于时刻和时区处理的几个问题(在 stackoverflow 上),但我还没有找到关于时刻如何决定本地 UTC 偏移量的答案。我在美国/丹佛时区,在撰写本文时,偏移量为 UTC-07:00。 Windows 时钟设置正确并正确显示本地时间。对于“2017-04-24 17:33:55”的UTC时间戳,我希望以下代码将displayDate记录为“04/24 10:12:34”

dateString = "2017-04-24 17:12:34"
console.log("dateString: " + dateString)
utc = moment.utc(dateString)
console.log("utc: " + utc.format())
now = moment(utc.format())
console.log("now: " + now.format())
displayDate = now.format("MM/DD HH:mm:ss")
console.log("displayDate: " + displayDate)

但是,这是控制台显示的内容:
dateString: 2017-04-24 17:12:34
utc: 2017-04-24T17:12:34Z
now: 2017-04-24T18:12:34+01:00
displayDate: 04/24 18:12:34

我不知道它是如何认为我处于 UTC+01:00 偏移的时区的。我没有使用 moment-timezone 并且无法解决为什么 moment 获取错误的偏移量。我注意到有一个 TZ 环境变量设置为 America/Denver,所以这显然没有效果。矩如何确定本地偏移量?是否有某种默认设置在某处搞砸了?它一定是我机器上的东西,因为相同的代码在另一台机器上正常工作。

如果有帮助,此代码位于 AngularJS(版本 1.5.8)应用程序中。

干杯,
富有的

最佳答案

从正常的 JavaScript Date().toString() 输出中,它给了我一个关于 TZ 环境变量的线索,因为它被设置为“美国/丹佛”。我取消了 TZ 环境变量的设置,然后重新启动了 Web 服务器(Tomcat 服务)并再次尝试。我遇到了同样的问题,但还是决定重新启动整个机器。毕竟,这是 Windows 机器上许多问题的解决方案......果然,这奏效了!

底线是 JavaScript 必须使用 TZ 环境变量(覆盖系统日期和时间设置),而且它似乎只查看前三个字符。

希望这对其他人有帮助。

关于timezone - 时刻 js 选择了错误的时区/偏移量,因此从 UTC 到本地时间的转换是不正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599463/

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