1. ホーム
  2. java

[解決済み] Dateで昨日の日付を取得する [重複]。

2022-05-14 04:13:05

質問

以下の関数は今日の日付を生成しますが、昨日の日付だけを生成するにはどうしたらよいでしょうか。

private String toDate() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date date = new Date();    
        return dateFormat.format(date).toString();
}

これが出力です。

2012-07-10

私は以下のように昨日の日付だけが必要です。私の関数でこれを行うことは可能でしょうか?

2012-07-09

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

更新

最近、datetime APIに改良が加えられ JSR-310 .

Instant now = Instant.now();
Instant yesterday = now.minus(1, ChronoUnit.DAYS);
System.out.println(now);
System.out.println(yesterday);

https://ideone.com/91M1eU

時代遅れの回答

引き算を間違えています。

使用方法 Calendar を使います。

private Date yesterday() {
    final Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DATE, -1);
    return cal.getTime();
}

次に、メソッドを以下のように修正します。

private String getYesterdayDateString() {
        DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        return dateFormat.format(yesterday());
}


参照