6

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

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

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

> 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)'

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

4

1 回答 1

2

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

如果你重启节点,你会发现偏移量和时区都是正确的。我怀疑这是有意避免在运行期间意外更改时间,但在 Google 搜索中找不到任何与此相关的内容。

于 2013-10-30T20:02:54.710 回答