カテゴリ: Java 更新日: 2026/02/20

JavaのLocalDate.minusDaysの使い方を完全ガイド!初心者でもわかる日付操作

LocalDateのminusDaysメソッド
LocalDateのminusDaysメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaで昨日の日付を取得する方法ってありますか?」

先生

「Javaではjava.timeパッケージのLocalDateクラスを使えば、簡単に日付操作ができます。昨日を取得したいならminusDaysメソッドが便利ですよ。」

生徒

「minusDaysって何ですか?どう使うんですか?」

先生

「それでは、LocalDate.minusDaysメソッドの使い方をわかりやすく解説していきましょう!」

1. java.timeパッケージとは?

1. java.timeパッケージとは?
1. java.timeパッケージとは?

java.timeパッケージは、Java8から導入された新しい日付と時刻のAPIです。旧来のjava.util.Datejava.util.Calendarに比べて、使いやすく安全に日付・時刻を扱えるようになりました。

このパッケージには、日付操作に便利なLocalDateや、時刻を扱うLocalTime、日付と時刻の両方を扱うLocalDateTimeなどが含まれています。

日付を扱う場合は、LocalDateが最も基本的でよく使われます。

2. LocalDateクラスとは?

2. LocalDateクラスとは?
2. LocalDateクラスとは?

LocalDateクラスは、日付(年・月・日)を表すためのクラスです。時間情報は持っていません。例えば、「2025年9月4日」などの日付だけを管理したい場合に最適です。

LocalDateの主な特徴は以下の通りです:

  • イミュータブル(変更不可)で安全に使える
  • 現在の日付を簡単に取得できる
  • 日付の加算・減算も簡単にできる

そして、日付を減らす処理に使えるのがminusDaysメソッドです。

3. minusDaysメソッドの基本的な使い方

3. minusDaysメソッドの基本的な使い方
3. minusDaysメソッドの基本的な使い方

minusDaysメソッドは、指定した日数だけ過去の日付を取得できる便利なメソッドです。

たとえば、「今日から1日前」を取得するには以下のように書きます。


import java.time.LocalDate;

public class MinusDaysExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate yesterday = today.minusDays(1);
        System.out.println("今日の日付:" + today);
        System.out.println("昨日の日付:" + yesterday);
    }
}

実行結果の例:


今日の日付:2025-09-04
昨日の日付:2025-09-03

4. minusDaysの応用:過去7日間をループで取得

4. minusDaysの応用:過去7日間をループで取得
4. minusDaysの応用:過去7日間をループで取得

minusDaysメソッドは、繰り返し処理の中でも活用できます。たとえば、過去7日間の日付を1日ずつ取得する場合は、以下のようにします。


import java.time.LocalDate;

public class Last7Days {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        for (int i = 1; i <= 7; i++) {
            LocalDate date = today.minusDays(i);
            System.out.println(i + "日前:" + date);
        }
    }
}

このように、minusDaysは日付を自在に操る強力なツールとなります。

5. minusDaysと他のメソッドとの違い

5. minusDaysと他のメソッドとの違い
5. minusDaysと他のメソッドとの違い

minusDaysと似たようなメソッドにplusDaysがあります。これは日付を未来に進めたいときに使います。

また、日単位以外にも、minusWeeksminusMonthsminusYearsといったメソッドも用意されています。

用途に応じて使い分けることで、柔軟な日付処理が可能になります。

6. LocalDateと他のAPIとの連携

6. LocalDateと他のAPIとの連携
6. LocalDateと他のAPIとの連携

LocalDateで取得した日付は、データベースに保存したり、文字列として画面に表示したりすることが多いです。

文字列に変換するにはtoStringメソッドを使ったり、DateTimeFormatterを使えば自由な形式に整形できます。


import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class FormatDate {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now().minusDays(3);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String formatted = date.format(formatter);
        System.out.println("3日前は:" + formatted);
    }
}

実行結果の例:


3日前は:2025年09月01日

7. minusDaysを使うときの注意点

7. minusDaysを使うときの注意点
7. minusDaysを使うときの注意点

minusDaysは、日付の計算に便利ですが、祝日や営業日といった「特定のルールを含んだ日数の計算」には対応していません。

たとえば、「平日のみで3日前」といった処理は、別途ロジックを組む必要があります。

また、LocalDateはイミュータブルなので、minusDaysで得られるのは新しいインスタンスです。元の変数が変わるわけではない点にも注意しましょう。

8. 日付差を求めたいならどうする?

8. 日付差を求めたいならどうする?
8. 日付差を求めたいならどうする?

「過去の日付と今日の日付の差を計算したい」といった場合は、ChronoUnit.DAYS.between()などを使います。


import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class DateDiffExample {
    public static void main(String[] args) {
        LocalDate startDate = LocalDate.of(2025, 8, 1);
        LocalDate endDate = LocalDate.now();
        long days = ChronoUnit.DAYS.between(startDate, endDate);
        System.out.println("日付の差:" + days + "日");
    }
}

minusDaysとは逆に、差を求めたいときにはこの方法も覚えておくと便利です。

Javaの基礎を最初から体系的に学びたい人には、 初心者向けで定評のある定番入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Java
JavaのLocalDate.minusDaysの使い方を完全ガイド!初心者でもわかる日付操作
新規投稿
New2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「And」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Distinct」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.4
Java&Spring記事人気No4
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.5
Java&Spring記事人気No5
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.6
Java&Spring記事人気No6
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.7
Java&Spring記事人気No7
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.8
Java&Spring記事人気No8
Thymeleaf
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク