ファイルを1行ずつ処理しています。
各行には次の形式の日付があります: YYMMDD HHMM
このファイルは、基本的に 15 分ごとに読み取り値を記録しています。記録は、それが含まれているタイムゾーンに夏時間を使用しています。私が抱えている問題は、春先と秋期です。記録は、フォールバックが発生した日付とフォールバックが発生したギャップを複製しています。
フォールバックの例:
141102 0100
141102 0115
141102 0130
141102 0145
141102 0200
141102 0115 - 重複
141102 0130 - 重複
141102 0145 - 重複
141102 0200 - 重複
スプリングフォワードの例:
150308 0200
150308 0315
私ができる必要があるのは、夏時間のときにすべての日付を1時間進めることです。
私が取り組んでいるプログラムは、現在 java.util.Calendar を使用しています。Java Calendar を使用してシフトを実行しようとしましたが、日付を追加する際に多くの問題が発生しています。問題は、DST の問題自体を修正しようとしていることにあると思いますが、やりたいことは日付を 1 時間ずらすことだけです。また、そのギャップの検出にも問題があります。たとえば、最初の 1:15 ~ 2:00 は夏時間であると見なされますが、そうではありません。
基本的に私が望むのは、フォールバックの例をこの日付範囲に含まれるすべてのものに変更して、1 時間前にシフトすることです。
フォールバックの例:
141102 0100 変化なし
141102 0115 変化なし
141102 0130 変化なし
141102 0145 変化なし
141102 0200 変化なし
141102 0115 ~ 141102 0215
141102 0130 ~ 141102 0230
141102 0145 ~ 141102 0245
141102 0200 ~ 141102 0300
春先に当たるまで日付を変え続ける
150308 0200 ~ 150308 0300
150308 0315 変化なし。
私は多くの方法を試しましたが、解決策にたどり着けないようです。私も Joda Time を使うことに反対ではありません。どんな助けでも感謝します、ありがとう。