1. ホーム
  2. java

[解決済み] JavaでDateオブジェクトからX日を減算する方法は?

2022-04-14 16:39:41

質問

のようなことをしたいのですが。

Date date = new Date(); // current date
date = date - 300; // substract 300 days from current date and I want to use this "date"

どうすればいいのか?

どのように解決するのですか?

Java 8 以降

Java 8の日付時刻APIの変更に伴い、以下のようになりました。 LocalDate

LocalDate date = LocalDate.now().minusDays(300);

同様に

LocalDate date = someLocalDateInstance.minusDays(300);

参照先 https://stackoverflow.com/a/23885950/260990 java.util.Date <--> java.time.LocalDateTime の間の変換について

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), ZoneId.systemDefault());
Date out = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());

Java 7以前

使用方法 Calendar 's add() メソッド

Calendar cal = Calendar.getInstance();
cal.setTime(dateInstance);
cal.add(Calendar.DATE, -30);
Date dateBefore30Days = cal.getTime();