1

ファイルを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 を使うことに反対ではありません。どんな助けでも感謝します、ありがとう。

4

2 に答える 2