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));