JS Date() 返回正确的时区,但返回错误的日期

JS Date() returns correct timezone but wrong date

本文关键字:返回 时区 日期 错误 Date JS      更新时间:2023-09-26

我在尝试使用 javascript 中的 Date() 获取当前日期时遇到了奇怪的行为。首先,我将时区设置为 古巴

sudo ln -sf /usr/share/zoneinfo/Cuba /etc/localtime

并在另一个运行 node.js 的控制台中运行Date()。这是输出——

> Date()
'Thu Oct 31 2013 06:28:25 GMT+1100 (CDT)'

关于更改时区,

sudo ln -sf /usr/share/zoneinfo/Asia/Vladivostok /etc/localtime

并再次运行Date(),这是输出 -

> Date()
'Thu Oct 31 2013 06:28:31 GMT+1100 (VLAT)'

任何人都可以解释为什么会发生这种情况以及如何根据时区获取时间?

一些弄乱操作系统时区和node表明,虽然node在运行时正确获取时区更改,但它无法更新偏移量。 这就是为什么两个日期都显示GMT+1100的原因。

如果重新启动节点,您会发现偏移量和时区都正确。 我怀疑这是故意避免在跑步过程中时间意外变化,但通过谷歌搜索找不到任何类似的内容。