カテゴリ: Java 更新日: 2026/04/12

JavaのLocalDateTimeクラスwithメソッドを徹底解説!初心者でもわかる日時の変更方法

LocalDateTimeのwithメソッド
LocalDateTimeのwithメソッド

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

生徒

「先生、Javaで日時の一部だけを変更する方法ってありますか?」

先生

「はい、Javaのjava.timeパッケージにあるLocalDateTimeクラスには、withメソッドがあります。これを使えば簡単に年や月、日、時間を変更できますよ。」

生徒

「なるほど!具体的にはどうやって使うんですか?」

先生

「それでは、実際のサンプルコードを使って説明していきましょう。」

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

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

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

java.timeパッケージは、Java8から導入された新しい日時APIです。従来のDateCalendarに比べて、直感的で使いやすく、バグを減らせる仕組みになっています。システム開発やWebアプリケーションでは、このパッケージを使うのが標準となっています。

2. LocalDateTimeクラスの概要

2. LocalDateTimeクラスの概要
2. LocalDateTimeクラスの概要

LocalDateTimeは日付と時刻を同時に扱うクラスです。タイムゾーンの情報は持たないため、純粋に年月日と時刻を表現するのに適しています。現在日時を取得したり、演算で変更したり、柔軟に使えます。

3. withメソッドとは?

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

withメソッドは、日時の一部を指定して変更できるメソッドです。例えば年だけを変更したり、月だけを変更したりといった操作が簡単にできます。元のインスタンスを変更せず、新しいLocalDateTimeオブジェクトを返すのも特徴です。

4. withメソッドの基本構文

「4. withメソッドの基本構文」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. withメソッドの基本構文
4. withメソッドの基本構文

基本的な構文は以下の通りです。


LocalDateTime 変更後 = 元の日時.with(ChronoField, 値);

また、特定の専用メソッド(withYearwithMonthなど)も用意されています。

5. 年を変更する例

5. 年を変更する例
5. 年を変更する例

次の例では、年だけを変更しています。


import java.time.LocalDateTime;

public class WithYearExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2023, 5, 10, 14, 30);
        LocalDateTime changed = dateTime.withYear(2025);

        System.out.println("元の日時: " + dateTime);
        System.out.println("変更後の日時: " + changed);
    }
}

元の日時: 2023-05-10T14:30
変更後の日時: 2025-05-10T14:30

6. 月を変更する例

6. 月を変更する例
6. 月を変更する例

次は月を変更する例です。


import java.time.LocalDateTime;

public class WithMonthExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2024, 1, 20, 9, 0);
        LocalDateTime changed = dateTime.withMonth(12);

        System.out.println("元の日時: " + dateTime);
        System.out.println("変更後の日時: " + changed);
    }
}

元の日時: 2024-01-20T09:00
変更後の日時: 2024-12-20T09:00

7. 日を変更する例

「7. 日を変更する例」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. 日を変更する例
7. 日を変更する例

日だけを変更する場合の例です。


import java.time.LocalDateTime;

public class WithDayExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2025, 2, 5, 18, 45);
        LocalDateTime changed = dateTime.withDayOfMonth(28);

        System.out.println("元の日時: " + dateTime);
        System.out.println("変更後の日時: " + changed);
    }
}

元の日時: 2025-02-05T18:45
変更後の日時: 2025-02-28T18:45

8. 時刻を変更する例

8. 時刻を変更する例
8. 時刻を変更する例

時刻を変更する例も見てみましょう。


import java.time.LocalDateTime;

public class WithHourExample {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2025, 7, 15, 10, 0);
        LocalDateTime changed = dateTime.withHour(22);

        System.out.println("元の日時: " + dateTime);
        System.out.println("変更後の日時: " + changed);
    }
}

元の日時: 2025-07-15T10:00
変更後の日時: 2025-07-15T22:00

9. withとplus/minusの違い

9. withとplus/minusの違い
9. withとplus/minusの違い

withは指定した値に直接置き換えるのに対して、plusminusは相対的に加算や減算を行います。例えば「3月に変更したい」ならwithMonthを使い、「3か月後にしたい」ならplusMonthsを使うという違いがあります。

10. 実務での活用シーン

「10. 実務での活用シーン」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

10. 実務での活用シーン
10. 実務での活用シーン

withメソッドは、システム開発における日付操作で頻繁に使われます。例えば、毎月の請求書作成で日付を指定した日付に変更する処理や、スケジュール管理アプリで特定の日や時刻を設定する場面などが代表例です。初心者でも理解しやすく、応用範囲も広いメソッドといえます。

カテゴリの一覧へ
新着記事
New1
Java
Javaのラムダ式sorted完全ガイド!Comparator・compareTo・複数条件・文字列の並び替えを理解しよう
更新記事
New2
Thymeleaf
Thymeleafのth:includeの使い方を完全ガイド!初心者でもわかるテンプレートの再利用
更新記事
New3
Java
JavaのLocalDateTimeクラスwithメソッドを徹底解説!初心者でもわかる日時の変更方法
新規投稿
New4
Spring
JavaのSpringで@PostMappingアノテーションを学ぼう!初心者でもわかるHTTP POSTの処理方法
更新記事
人気記事
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
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.4
Java&Spring記事人気No4
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.5
Java&Spring記事人気No5
Java
JavaのScannerクラスとIOExceptionの使い方を完全解説!初心者でもわかる例外処理と入力処理の基本
No.6
Java&Spring記事人気No6
Spring
Spring Data JPAのJpaRepositoryインターフェースの使い方を完全ガイド!初心者でも安心
No.7
Java&Spring記事人気No7
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.8
Java&Spring記事人気No8
Spring
Spring BootのMultipartFile入門:ファイルアップロード・ダウンロードの実装方法と制限設定