カテゴリ: 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パッケージとは?
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日間をループで取得
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を使うときの注意点
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とは逆に、差を求めたいときにはこの方法も覚えておくと便利です。

カテゴリの一覧へ
新着記事
New1
Spring
Javaの@RequestParamアノテーションの使い方を徹底解説!初心者でもわかるリクエストパラメータの基本と応用
更新記事
New2
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
更新記事
New3
Thymeleaf
Thymeleafの#stringsユーティリティとは?初心者でも使える文字列操作ガイド
更新記事
New4
Java
JavaのArrayListクラスとisEmptyメソッドを完全解説!初心者でもわかるリストの空チェック
更新記事
人気記事
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開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Spring
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス