Javaの日付を1時間前に戻す 質問する

Javaの日付を1時間前に戻す 質問する

Java の日付オブジェクトがあります:

Date currentDate = new Date();

現在の日付と時刻が表示されます。例:

Thu Jan 12 10:17:47 GMT 2012

代わりに、日付を取得し、それを 1 時間前に戻して、次の結果を取得したいと思います。

Thu Jan 12 09:17:47 GMT 2012

それを実行する最善の方法は何でしょうか?

ベストアンサー1

java.util.カレンダー

Calendar cal = Calendar.getInstance();
// remove next line if you're always using the current time.
cal.setTime(currentDate);
cal.add(Calendar.HOUR, -1);
Date oneHourBack = cal.getTime();

java.util.日付

new Date(System.currentTimeMillis() - 3600 * 1000);

org.joda.time.LocalDateTime

new LocalDateTime().minusHours(1)

Java 8: java.time.LocalDateTime

LocalDateTime.now().minusHours(1)

Java 8 java.time.Instant

// always in UTC if not timezone set
Instant.now().minus(1, ChronoUnit.HOURS));
// with timezone, Europe/Berlin for example
Instant.now()
       .atZone(ZoneId.of("Europe/Berlin"))
       .minusHours(1));

おすすめ記事