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

JavaのLocalDateTimeクラスとminusメソッドを完全ガイド!初心者でもわかる日時操作

LocalDateTimeのminusメソッド
LocalDateTimeのminusメソッド

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

生徒

「Javaで日時から日数や時間を引き算する方法ってありますか?」

先生

「はい、java.timeパッケージのLocalDateTimeクラスには、minusメソッドが用意されています。これを使えば日付や時刻を簡単に減算できますよ。」

生徒

「例えば一週間前の日時や三時間前の時刻を求めたいときに使えるんですね!」

先生

「その通りです。では、minusメソッドの基本から応用まで見ていきましょう。」

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

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

Javaのjava.timeパッケージは、日時や時間を直感的に扱えるようにするためのライブラリです。Java8から導入され、古いDateCalendarの使いにくさを解消しました。初心者が「Java 日時 計算」や「Java LocalDateTime minus 使い方」といった検索をすると、このパッケージに関する情報が多く見つかるでしょう。

2. LocalDateTimeクラスとは?

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

LocalDateTimeクラスは年月日と時刻をまとめて扱える便利なクラスです。タイムゾーンを含まないためシンプルに利用でき、ログの記録、スケジュール管理、予約システムなど多くの場面で使われています。

3. minusメソッドとは?

3. minusメソッドとは?
3. minusメソッドとは?

minusメソッドは日時から指定した単位の時間を引き算するために使います。例えば「10日引く」「2時間引く」といった処理を簡単に書けます。これにより、過去の日時を計算するプログラムが直感的に実装できます。

4. minusメソッドの基本的な使い方

4. minusメソッドの基本的な使い方
4. minusメソッドの基本的な使い方

次の例では、現在の日時から日数や時間を引いて計算しています。


import java.time.LocalDateTime;

public class MinusExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        LocalDateTime fiveDaysAgo = now.minusDays(5);
        LocalDateTime threeHoursAgo = now.minusHours(3);

        System.out.println("現在日時: " + now);
        System.out.println("5日前: " + fiveDaysAgo);
        System.out.println("3時間前: " + threeHoursAgo);
    }
}

実行すると次のような結果になります。


現在日時: 2025-09-23T15:30:00
5日前: 2025-09-18T15:30:00
3時間前: 2025-09-23T12:30:00

5. minusとChronoUnitの組み合わせ

5. minusとChronoUnitの組み合わせ
5. minusとChronoUnitの組み合わせ

minusメソッドはChronoUnitを使って柔軟に時間単位を指定できます。これによりコードが読みやすくなり、月単位や週単位の引き算も簡単です。


import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

public class MinusWithChronoUnit {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();

        LocalDateTime oneWeekAgo = now.minus(1, ChronoUnit.WEEKS);
        LocalDateTime tenMinutesAgo = now.minus(10, ChronoUnit.MINUTES);

        System.out.println("1週間前: " + oneWeekAgo);
        System.out.println("10分前: " + tenMinutesAgo);
    }
}

6. 実務での活用例

6. 実務での活用例
6. 実務での活用例

minusメソッドは、例えば「有効期限が7日前に切れているか確認」「三十分前のログを取得」といった処理に便利です。予約管理や勤怠システムなど、時間の経過を扱うアプリケーションで必須の知識となります。

7. minusとplusの違い

7. minusとplusの違い
7. minusとplusの違い

minusが時間を減算するのに対し、plusは加算するメソッドです。両方を組み合わせることで、柔軟に日時を計算できます。初心者はまず「minusで過去、plusで未来」と覚えると理解しやすいです。

8. 補足知識

8. 補足知識
8. 補足知識

java.timeパッケージにはLocalDateLocalTimeなどもあり、それぞれにminusが用意されています。日付だけ扱いたいときや時間だけ扱いたいときはこれらのクラスを使うとよりシンプルに実装できます。さらに、タイムゾーンを考慮したい場合はZonedDateTimeminusを組み合わせると国際化対応のシステムも簡単に構築できます。

カテゴリの一覧へ
新着記事
New1
Spring
JavaのSpringで使う@Nullアノテーションを完全解説!初心者でも理解できる入力チェックの基本
更新記事
New2
Thymeleaf
Thymeleafのth:attr属性の使い方を完全ガイド!初心者でもわかる動的属性設定
更新記事
New3
Java
JavaのLocalDateTimeクラスとminusメソッドを完全ガイド!初心者でもわかる日時操作
新規投稿
New4
Java
Javaのラムダ式とStreamのcollectを完全ガイド!初心者でもわかるリスト変換と集約処理の基本
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.5
Java&Spring記事人気No5
Spring
Springの @ResponseBodyアノテーション完全ガイド!初心者でもわかる使い方
No.6
Java&Spring記事人気No6
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.7
Java&Spring記事人気No7
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.8
Java&Spring記事人気No8
Thymeleaf
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加