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

Par*_*cha 6 javascript timezone date node.js

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

sudo ln -sf /usr/share/zoneinfo/Cuba /etc/localtime
Run Code Online (Sandbox Code Playgroud)

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

> Date()
'Thu Oct 31 2013 06:28:25 GMT+1100 (CDT)'
Run Code Online (Sandbox Code Playgroud)

在改变时区时,

sudo ln -sf /usr/share/zoneinfo/Asia/Vladivostok /etc/localtime
Run Code Online (Sandbox Code Playgroud)

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

> Date()
'Thu Oct 31 2013 06:28:31 GMT+1100 (VLAT)'
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*our 2

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

如果重新启动节点,您会发现偏移量和时区都是正确的。我怀疑这是故意避免时间在运行过程中意外变化,但无法通过谷歌搜索找到任何与此效果相关的内容。