JSdate()返回正确的时区,但错误的date
当我尝试在javascript中使用Date()获取当前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
正在运行时正确地select时区更改,但它无法更新偏移量 。 这就是为什么这两个date显示GMT+1100
。
如果重新启动节点,则会发现偏移量和时区都是正确的。 我怀疑这是为了避免在运行过程中出现意想不到的变化,但是在Googlesearch中找不到这种效果。