カテゴリ: Java 更新日: 2026/01/22
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

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
PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

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 Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。

徹底攻略 Java SE 17 Silver 問題集をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

JavaのVectorクラスの使い方を完全ガイド!初心者でもわかるコレクションの基本
Spring Bootのディレクトリ構成を完全ガイド!初心者向けにjava・resources・static・templatesの役割を解説
Spring Boot + IntelliJ IDEAの始め方を完全ガイド!JDK設定・起動構成・デバッグまで解説
Gradle vs Maven どっちを選ぶ?Spring Bootの依存管理・ビルド設定の基本
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.3
Java&Spring記事人気No3
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.4
Java&Spring記事人気No4
JavaのEnumクラスのordinalメソッドを徹底解説!初心者でもわかる列挙型の順序番号
No.5
Java&Spring記事人気No5
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.6
Java&Spring記事人気No6
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.7
Java&Spring記事人気No7
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定
No.8
Java&Spring記事人気No8
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門