タイムゾーンと JavascriptDate
オブジェクトで奇妙なことに気付きました。
Linuxボックスでこれを試す:
$ TZ='America/Sao_Paulo' js
js> new Date(2012, 9, 21, 0, 0, 0).toString()
"Sat Oct 20 2012 23:00:00 GMT-0300 (BRST)"
2012 年 10 月 21 日を表すオブジェクトを取得することは不可能であることがわかりました。Date
その日の 00:00 から 01:00 の間を取得しようとすると、前日の 11:00 PM から 00:00 の間の日付になります。
(Windows ユーザーは、タイムゾーンを Brasilia/GMT-03 に変更して、同じ動作を体験することができます)
このような日付オブジェクトに 1 時間 (または 1 日) を追加すると、同じ日付が返されます。
ブラジルでその特定の日付に発生する夏時間と関係があると思いますが、それを処理する方法がまったくわかりません。
私は月の日を繰り返すループを持っています(カレンダーアプリケーションの場合)。その場合、2012 年 10 月 20 日に達すると、明らかに永遠にループします。
私が間違っていることがあるに違いありませんが、他のタイムゾーンでも発生する可能性があるため、そのような場合の対処方法がわかりません。
Date
このようなタイムゾーン/サマータイム関連の問題が発生しないようにするために、Javascriptで推奨される処理方法は何ですか?