カテゴリ: Java 更新日: 2026/03/28

JavaのLocalDate.minusYearsの使い方を完全ガイド!日付から年を引く方法を初心者向けに解説

LocalDateのminusYearsメソッド
LocalDateのminusYearsメソッド

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

生徒

「Javaで日付から何年か前を計算したいんですけど、どうやればいいですか?」

先生

「それなら、JavaのLocalDateクラスにあるminusYearsメソッドを使えば、簡単に指定した年数だけ過去の日付を取得できますよ。」

生徒

「なるほど!でも、LocalDateってどうやって使うんですか?何かインポートが必要なんですか?」

先生

「その通りです。java.timeパッケージにあるクラスなので、まずはimport java.time.LocalDate;と書いてから使いましょう。それでは詳しく解説していきますね。」

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

「1. java.timeパッケージとは?」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

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

Javaのjava.timeパッケージは、Java8以降で導入された新しい日付と時刻のAPI群です。従来のjava.util.DateCalendarと比べて、より直感的で扱いやすいクラスが揃っており、日時操作をシンプルに行えるのが特徴です。

このパッケージには、日付専用のLocalDate、時刻専用のLocalTime、日付と時刻を同時に扱うLocalDateTimeなどのクラスがあります。

今回紹介するminusYearsメソッドは、LocalDateクラスの一部で、指定した年数を現在の日付から引く処理に使います。

2. LocalDateクラスとは?

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

LocalDateクラスは、日付だけを扱うクラスで、年・月・日の情報を管理できます。時刻やタイムゾーンの情報は含まず、「2025-09-04」のような日付データを扱うのに最適です。

このクラスは、日付の計算や比較、フォーマット変換などが簡単にできる機能を豊富に備えており、Javaで日付を扱う場合の標準的な手段となっています。

例えば今日の日付を取得するには、以下のように記述します。


LocalDate today = LocalDate.now();

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

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

minusYearsメソッドは、LocalDate型のオブジェクトから指定した年数だけ過去に戻った日付を取得するために使用します。

このメソッドの基本構文は以下の通りです:


LocalDate pastDate = LocalDate.now().minusYears(5);

このコードでは、現在の日付から5年前の日付を取得しています。メソッドの戻り値もLocalDate型で返されるため、そのまま他の日時操作にも利用可能です。

4. サンプルコード:5年前の日付を表示する

「4. サンプルコード:5年前の日付を表示する」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. サンプルコード:5年前の日付を表示する
4. サンプルコード:5年前の日付を表示する

それでは、実際にminusYearsメソッドを使って、現在の日付と5年前の日付を表示するサンプルコードを見てみましょう。


import java.time.LocalDate;

public class DateExample {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        LocalDate fiveYearsAgo = today.minusYears(5);

        System.out.println("今日の日付: " + today);
        System.out.println("5年前の日付: " + fiveYearsAgo);
    }
}

このコードを実行すると、以下のような出力になります。


今日の日付: 2025-09-04
5年前の日付: 2020-09-04

5. minusYearsの応用例と注意点

5. minusYearsの応用例と注意点
5. minusYearsの応用例と注意点

minusYearsメソッドは単純な年数の引き算だけでなく、他のメソッドと組み合わせることでより柔軟な日付操作が可能になります。例えば、5年前の同じ月の1日を取得したい場合は次のように記述します。


LocalDate date = LocalDate.now().minusYears(5).withDayOfMonth(1);

また、minusYearsはうるう年に関する注意も必要です。例えば2020年2月29日から1年引くと、2021年には2月29日が存在しないため、結果は2月28日になります。


LocalDate leap = LocalDate.of(2020, 2, 29);
LocalDate result = leap.minusYears(1);
System.out.println(result); // → 2019-02-28

6. minusYearsと他のメソッドとの違い

6. minusYearsと他のメソッドとの違い
6. minusYearsと他のメソッドとの違い

minusYearsのように日付を減らすメソッドには他にもいくつか種類があります。例えば、月単位で減らしたい場合はminusMonths、日単位で減らしたい場合はminusDaysが使えます。


LocalDate minusMonths = LocalDate.now().minusMonths(3);
LocalDate minusDays = LocalDate.now().minusDays(10);

これらのメソッドを組み合わせれば、「3年前の同じ月の10日前」のような複雑な日付も簡単に表現できます。

7. どんな場面で使うのか?実用例を紹介

「7. どんな場面で使うのか?実用例を紹介」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. どんな場面で使うのか?実用例を紹介
7. どんな場面で使うのか?実用例を紹介

minusYearsメソッドは、以下のような実務でも活用されることがあります:

  • 会員登録日から○年経過したかチェック
  • 履歴書や経歴の年数計算
  • 資格の有効期限を過去にさかのぼって確認

日付の計算は、正確さが求められる業務でも頻繁に使われるため、信頼性の高いLocalDateminusYearsの組み合わせは非常に重宝されます。

カテゴリの一覧へ
新着記事
New1
Java
JavaのStringクラスとtoStringメソッドを完全解説!初心者でも理解できる文字列表現の基本
更新記事
New2
Java
JavaのLocalDate.minusYearsの使い方を完全ガイド!日付から年を引く方法を初心者向けに解説
新規投稿
New3
Java
JavaのStringクラスとtoLowerCaseメソッドを完全解説!初心者でも理解できる文字列を小文字に変換する方法
更新記事
New4
Java
JavaのStringクラスとreplaceメソッドを完全解説!初心者でも理解できる文字列置換の使い方
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
Thymeleaf
Thymeleafのth:checkedの使い方!チェックボックスON/OFFを動的に制御する方法
No.4
Java&Spring記事人気No4
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.5
Java&Spring記事人気No5
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.6
Java&Spring記事人気No6
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.8
Java&Spring記事人気No8
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理