期間が次のように定義されているかどうかを知る必要があります。
DateTime start;
DateTime end;
内部にDSTがあります。
{start、end}で定義された期間のコレクションを繰り返し処理し、すべての反復で開始と終了を24時間進めます。結果の期間は深夜に始まり、次の深夜の1ミリ秒前に終了します。期間にシフト内の夏時間がある場合、誤った結果が生成されることがわかりました。例:
持っている:
Duration targetDuration = new Duration(24*60*60*1000L-1);
DateTime start = new DateTime("2012-03-10T00:00:00.000-08:00");
DateTime end = new DateTime("2012-03-10T23:59:59.999-08:00");
次に、シフトが行われます。
start = end.plusMillis(1);
end = start.plus(targetDuration);
生成:
start = "2012-03-11T00:00:00.000-08:00"
end = "2012-03-12T00:59:59.999-07:00"
期間にDSTが含まれているかどうかを確認できるJodaTimeの標準APIはありますか?