6

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

なぜこれが起こるのか、タイムゾーンに基づいて時間を取得するにはどうすればよいですか?

4

1 に答える 1

2

OS のタイムゾーンをいじると、実行中にタイムゾーンの変更を正しく取得する一方で、 offsetの更新に失敗することがnodeわかります。これが、両方の日付が表示される理由です。 nodeGMT+1100

ノードを再起動すると、オフセットとタイムゾーンの両方が正しいことがわかります。これは、実行中に予期せず時刻が変更されるのを避けるための意図的なものだと思われますが、Google 検索でそのような効果を見つけることはできません。

于 2013-10-30T20:02:54.710 に答える