Pacific TimeZone 設定のサーバーにデプロイする webapp があります。私のアプリは、計算で PST<->PDT 日付変換を処理できますが、以下で説明するように、欠落した時間/無効な時間を処理する問題に直面しています。
無効な時間 – 3 月の第 2 日曜日の午前 2:00 から午前 3:00 の間は、時計の前方自動調整のため、この時間は太平洋時間帯には存在しません。
したがって、10-Mar-2013 02:00:00 のような日付が入力されると、システムは自動的に 10-Mar-2013 03:00:00 に変換します。この時間は実際には太平洋時間帯に存在しないため、これが起こっていることを理解しました.
ただし、要件によりサーバーのタイムゾーンを変更することはできず (GMT など)、時間 (2013 年 3 月 10 日 02:00:00) を超える時間をキャプチャする必要があります。さらに、サーバーの自動調整クロック設定も変更できないため、上記をサポートするためにアプリケーション コードを変更する必要があります。
よろしくお願いします。
より明確にするためにコードを追加します。
SimpleDateFormat sdf = new SimpleDateFormat("ddMMyy HH:mm:ss");
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = sdf.parse("100313 02:00:00");
Date date1 = sdf.parse("100313 03:00:00");
System.out.println(sdf.format(date));
System.out.println(sdf.format(date1));
Output:
100313 03:00:00
100313 03:00:00
If i uncomment commented line then output:
100313 02:00:00
100313 03:00:00