カテゴリ: Java 更新日: 2026/01/22

JavaのLocalDateTimeクラスとplusDaysメソッドを徹底解説!初心者でもわかる日付操作

LocalDateTimeのplusDaysメソッド
LocalDateTimeのplusDaysメソッド

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

生徒

「Javaで日付を一日進める方法ってありますか?」

先生

「はい、Javaにはjava.timeパッケージが用意されていて、その中のLocalDateTimeクラスを使うと日付や時刻の操作ができますよ。」

生徒

「そのクラスを使えば、例えば今日の日付を三日後にしたりできますか?」

先生

「はい、plusDaysメソッドを使えば簡単に未来の日付を計算できます。それでは基本から順番に見ていきましょう!」

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

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

Javaのjava.timeパッケージは、日時を扱うための標準ライブラリです。従来のDateCalendarよりも直感的に使えるように設計されており、時間や日付の計算をシンプルに書けるのが特徴です。特に、LocalDateTimeは日付と時刻を同時に扱える便利なクラスで、システム開発やアプリケーションで頻繁に利用されます。

2. LocalDateTimeクラスの基本

2. LocalDateTimeクラスの基本
2. LocalDateTimeクラスの基本

LocalDateTimeクラスは、年月日と時刻を保持できるクラスです。例えば「2025年9月23日 10時30分」といった形の情報を扱えます。重要なのは、タイムゾーン情報を持たないため、シンプルに日付や時刻を扱う用途に最適という点です。

新しく現在の日時を取得する場合には、以下のように書けます。


import java.time.LocalDateTime;

public class DateTimeExample {
    public static void main(String[] args) {
        LocalDateTime now = LocalDateTime.now();
        System.out.println("現在の日時: " + now);
    }
}

現在の日時: 2025-09-23T10:30:15.123

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

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

plusDaysメソッドは、指定した日数を現在の日付に加算して新しいLocalDateTimeインスタンスを返します。元のオブジェクトを変更せず、新しい値を生成する「不変オブジェクト」の考え方に基づいています。


import java.time.LocalDateTime;

public class PlusDaysExample {
    public static void main(String[] args) {
        LocalDateTime today = LocalDateTime.now();
        LocalDateTime threeDaysLater = today.plusDays(3);
        System.out.println("今日: " + today);
        System.out.println("三日後: " + threeDaysLater);
    }
}

今日: 2025-09-23T10:30:15.123
三日後: 2025-09-26T10:30:15.123

4. マイナスの日数を指定する

4. マイナスの日数を指定する
4. マイナスの日数を指定する

plusDaysはプラスの日数だけでなく、マイナスの値を渡すことでも過去の日付を求められます。例えば、plusDays(-7)とすれば一週間前の日付を取得できます。過去データの検索やログの参照などに便利です。


LocalDateTime lastWeek = LocalDateTime.now().plusDays(-7);
System.out.println("一週間前: " + lastWeek);

5. plusDaysと業務システムでの活用例

5. plusDaysと業務システムでの活用例
5. plusDaysと業務システムでの活用例

例えば、予約システムやスケジュール管理アプリでは「三日後の締め切り日時」を計算したり「七日後のリマインド通知」を設定したりするケースがあります。その際にLocalDateTimeplusDaysを組み合わせると非常に簡単に実現できます。

また、勤怠管理や定期的なレポート生成でも「一定期間後」の日時を自動的に算出できるため、プログラムの可読性やメンテナンス性も高まります。

6. LocalDateTimeと他のクラスとの比較

6. LocalDateTimeと他のクラスとの比較
6. LocalDateTimeと他のクラスとの比較

初心者が混乱しやすいのは、LocalDateLocalTimeとの違いです。LocalDateは日付のみ、LocalTimeは時刻のみを扱います。LocalDateTimeは両方をまとめて管理できるので、日時をセットで扱う場面に適しています。

さらに、時刻を含めた計算が不要であればLocalDateplusDaysを使うほうがシンプルになることもあります。状況に応じて使い分けるのが大切です。

7. plusDaysを安全に使うための注意点

7. plusDaysを安全に使うための注意点
7. plusDaysを安全に使うための注意点

plusDaysを利用する際には以下の点に注意しましょう。

  • 元のLocalDateTimeは変更されないため、必ず戻り値を新しい変数に代入すること。
  • タイムゾーンを扱う必要がある場合はZonedDateTimeを使うこと。
  • マイナスの値を渡すと過去に戻るため、意図せず未来ではなく過去の日付を計算してしまう可能性があること。

こうした点を理解しておけば、エラーの少ない安全なプログラムを作成できます。

8. plusDaysを使った実践的なコード例

8. plusDaysを使った実践的なコード例
8. plusDaysを使った実践的なコード例

例えば、会員登録から三十日後に有効期限を設定する処理を考えてみましょう。以下のように簡単に書けます。


import java.time.LocalDateTime;

public class ExpirationExample {
    public static void main(String[] args) {
        LocalDateTime registered = LocalDateTime.now();
        LocalDateTime expireDate = registered.plusDays(30);
        System.out.println("登録日: " + registered);
        System.out.println("有効期限: " + expireDate);
    }
}

登録日: 2025-09-23T10:30:15.123
有効期限: 2025-10-23T10:30:15.123

まとめ

まとめ
まとめ

LocalDateTimeとplusDaysで理解する日付操作の基本

この記事では、Javaにおける日付と時刻の操作として、LocalDateTimeクラスとplusDaysメソッドを中心に学習してきました。 Javaで日付計算を行う場面は非常に多く、業務システム、Webアプリケーション、バッチ処理、予約管理、期限管理など、さまざまなシーンで活用されます。 特にjava.timeパッケージは、従来のDateやCalendarと比べて分かりやすく、安全に日付操作ができる点が大きな特徴です。

LocalDateTimeは、年月日と時刻を一つのオブジェクトとして扱えるため、「いつ」という情報を正確に管理したい場合に非常に便利です。 さらに、plusDaysメソッドを使うことで、指定した日数を加算した新しい日時を簡単に求めることができます。 重要なポイントとして、LocalDateTimeは不変オブジェクトであるため、元の日時が変更されないという点も理解しておく必要があります。

業務で役立つplusDaysの考え方

実際の業務では、「登録日から三十日後」「申請日から七日後」「今日から一週間後」など、相対的な日付計算が頻繁に登場します。 そのような処理をif文や複雑な計算で実装するのではなく、plusDaysを使うことで、読みやすく保守しやすいコードを書くことができます。 また、マイナスの値を指定することで過去の日付も取得できるため、ログ分析や履歴検索にも応用可能です。

まとめとしてのサンプルプログラム

ここで、記事全体の理解を深めるために、LocalDateTimeplusDaysを組み合わせたシンプルなサンプルプログラムを振り返ります。 登録日を基準に、通知日と有効期限を計算する例です。


import java.time.LocalDateTime;

public class SummaryExample {
    public static void main(String[] args) {
        LocalDateTime baseDate = LocalDateTime.now();
        LocalDateTime noticeDate = baseDate.plusDays(7);
        LocalDateTime expireDate = baseDate.plusDays(30);

        System.out.println("基準日: " + baseDate);
        System.out.println("通知日: " + noticeDate);
        System.out.println("有効期限: " + expireDate);
    }
}

このように、基準となる日時を一つ用意し、そこから必要な日付を計算する考え方は、Javaの日付操作において非常に重要です。 ロジックが明確になり、後から見返したときにも処理内容が理解しやすくなります。

先生と生徒の振り返り会話

生徒

「LocalDateTimeとplusDaysを使えば、日付の計算がすごく簡単になるんですね。 前は自分で日付を計算しないといけないと思っていました。」

先生

「そうですね。Javaには便利な標準クラスが用意されているので、それを正しく使うことが大切です。 特に日付や時刻はバグが出やすい分野なので、信頼できるAPIを使うのが基本です。」

生徒

「plusDaysでマイナスの値を指定すると過去の日付も取れるのは便利だと思いました。 ログの確認や履歴検索にも使えそうですね。」

先生

「その通りです。さらに、タイムゾーンが必要な場合はZonedDateTimeを使うなど、 状況に応じたクラス選択も重要になります。」

生徒

「LocalDateやLocalTimeとの違いも理解できました。 これからは用途に合わせて使い分けられそうです。」

先生

「とても良い理解ですね。今回学んだLocalDateTimeとplusDaysの考え方は、 Javaの基礎として今後の開発でも必ず役に立ちますよ。」

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

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

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
新規投稿
New2
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Thymeleaf
Thymeleafのth:style属性を完全ガイド!初心者でもわかる動的スタイルの適用方法
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.4
Java&Spring記事人気No4
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.5
Java&Spring記事人気No5
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.6
Java&Spring記事人気No6
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心
No.7
Java&Spring記事人気No7
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介

💻 作業効率アップに

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

Logicool Signature M750 を見る

※ Amazon広告リンク