DSTの問題に注意してください。 "addDays"関数はDSTを意識したものではないため、DSTを持つ時間帯(DSTを持つタイムゾーン)でDSTの切り替えを実行すると、時間が狂うことになります。あなたが作業している場合
DateTime dt = ...;
Integer days = ...;
Date d = dt.date().addDays(days);
Time t = dt.time();
dt = DateTime.newInstance(d, t);
:のように、最後に再度組み合わせ、この1つは最初の独立した日付と時刻の部分に日付/時間を分割解決日付の部分に日数を追加するには
英国(ロンドン)のタイムゾーンは次の匿名Apexが問題をうまく説明しています:
DateTime dt = DateTime.newInstance(2017, 10, 28, 23, 59, 59);
System.debug('Adding days directly: ' + dt.addDays(2));
Date d = dt.date().addDays(2);
Time t = dt.time();
dt = DateTime.newInstance(d, t);
System.debug('Adding days in parts: ' + dt);
出典
2017-09-20 13:30:26
pws