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

时间:2013-10-30 19:30:41

标签: javascript node.js date timezone

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

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

1 个答案:

答案 0 :(得分:2)

操作系统时区和node的一些问题表明,虽然node在运行时正确选择时区更改,但无法更新偏移量即可。这就是两个日期显示GMT+1100的原因。

如果重新启动节点,您会发现偏移和时区都是正确的。我怀疑这是为了避免在运行期间意外地改变时间,但是使用Google搜索无法找到任何效果。