カテゴリ: 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から導入され、古いDateやCalendarの使いにくさを解消しました。初心者が「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パッケージにはLocalDateやLocalTimeなどもあり、それぞれにminusが用意されています。日付だけ扱いたいときや時間だけ扱いたいときはこれらのクラスを使うとよりシンプルに実装できます。さらに、タイムゾーンを考慮したい場合はZonedDateTimeとminusを組み合わせると国際化対応のシステムも簡単に構築できます。

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
カテゴリの一覧へ
新着記事
New1
Java
JavaのassertFalseとは?JUnit5のAssertionsクラスを初心者向けにわかりやすく解説
新規投稿
New2
Thymeleaf
ThymeleafでDBから取得したデータを編集フォームの初期値にセットする方法!Entity連携を初心者向けに解説
新規投稿
New3
Spring
JavaのSpringで使う@FutureOrPresentアノテーションを完全ガイド!初心者でもわかる日付バリデーション
新規投稿
New4
Java
JavaのLocalDateクラスのgetMonthValueメソッド完全ガイド!初心者でもわかる数値で月を取得する方法
新規投稿
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.3
Java&Spring記事人気No3
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.4
Java&Spring記事人気No4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本
No.6
Java&Spring記事人気No6
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.7
Java&Spring記事人気No7
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.8
Java&Spring記事人気No8
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎