夏時間の問題に直面しました。毎日午前00:05に実行するようにスケジュールされたJavaプログラムがありますが、昨日は23:05に実行されました。私はグレゴリオ暦を使用して、このプログラムをJavaでスケジュールしています。誰かが手動で実行しない限り、これまで23:05に実行されたことはありません。これがカレンダーの問題であるかどうか誰かが知っていますか?
5 に答える
この問題はほぼ確実に夏時間の切り替えに関連していますが、DSTの切り替えは通常午前2時に行われるため、午前0時頃に発生するのは奇妙なことです。
マシンがどのタイムゾーンに設定されているかを知り、実際のコードを確認せずに、これ以上言うのは難しいです。
夏時間の問題とは関係ありませんか?世界の一部の地域では、前夜の時間が夏時間から冬時間に変更されました。
世界のDST時間と北米のDST時間は、一貫性がない場合があります。
ヨーロッパでは、DSTは10月の最終日曜日に変更されます。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#Europe
北米では、DSTは11月の第1日曜日に変更されます。 http://en.wikipedia.org/wiki/Daylight_saving_time_around_the_world#North_America
より正確な情報を提供するコメントのために編集してください。
推測では、これは古いバージョンのJavaで実行されており、米国では夏時間が日曜日の朝に始まったと不適切に考えられていました。
内部的には、Javaは時間をGMTオフセットとして保存します...具体的には、1970年1月1日00:00:00.000 GMTからのミリ秒数(Calendar
クラスの説明に記載されています)。
Java自体を更新したくない場合でも、タイムゾーンアップデータツールを使用して、システムにインストールされているJavaタイムゾーンを更新できます。
注:このリストに記載されている他のタイムゾーンのいずれかにいない限り、これはJava5u6で修正されたと思われます。
00:05に走ったと思いますが、「新」(冬)の時間は23:05でした。