カテゴリ: Java 更新日: 2026/03/24

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

LocalDateTimeのwithDayOfMonthメソッド
LocalDateTimeのwithDayOfMonthメソッド

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

生徒

「先生、Javaで月の日付だけを変更する方法ってあるんですか?」

先生

「はい、Javaのjava.timeパッケージにあるLocalDateTimeクラスにはwithDayOfMonthメソッドがあります。これを使えば簡単に日付部分だけを変更できますよ。」

生徒

「なるほど!月はそのままで日だけを変えられるんですね。どうやって使うんですか?」

先生

「それでは、基本的な使い方から順番に見ていきましょう。」

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

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

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

java.timeパッケージはJava8から導入された新しい日時APIです。従来のDateCalendarよりも分かりやすく、安全で、柔軟に日時操作ができます。日付や時刻を扱うプログラムでは、このパッケージを利用するのが主流になっています。

2. LocalDateTimeクラスの特徴

2. LocalDateTimeクラスの特徴
2. LocalDateTimeクラスの特徴

LocalDateTimeクラスは年月日と時分秒を同時に表現できるクラスです。タイムゾーン情報を持たず、純粋なローカル日時を扱うのに適しています。現在日時を取得したり、日時の一部を変更したりと、さまざまな処理で役立ちます。

3. withDayOfMonthメソッドとは?

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

withDayOfMonthメソッドは、その月の「日」部分だけを変更するためのメソッドです。例えば、5月10日を5月25日に変更したい場合に利用します。元のLocalDateTimeオブジェクトを変更せず、新しいインスタンスを返すのも大きな特徴です。

4. 基本的な使い方

「4. 基本的な使い方」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. 基本的な使い方
4. 基本的な使い方

以下の例では、特定の日付を任意の日に変更する方法を示しています。


import java.time.LocalDateTime;

public class WithDayOfMonthBasic {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2024, 5, 10, 14, 0);
        LocalDateTime changed = dateTime.withDayOfMonth(25);

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

元の日時: 2024-05-10T14:00
変更後の日時: 2024-05-25T14:00

5. 月末日を指定する場合

5. 月末日を指定する場合
5. 月末日を指定する場合

月末の日付に変更することも可能です。ただし、存在しない日を指定すると例外が発生します。例えば2月に「30日」を指定するとエラーになります。


import java.time.LocalDateTime;

public class WithDayOfMonthEndOfMonth {
    public static void main(String[] args) {
        LocalDateTime dateTime = LocalDateTime.of(2025, 2, 10, 9, 30);
        LocalDateTime changed = dateTime.withDayOfMonth(28);

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

元の日時: 2025-02-10T09:30
変更後の日時: 2025-02-28T09:30

6. スケジュール管理での活用例

6. スケジュール管理での活用例
6. スケジュール管理での活用例

例えば毎月25日に請求処理を実行するシステムを作る場合、現在の月の日時からwithDayOfMonth(25)を呼び出して処理日を指定できます。これによりシンプルなコードでスケジュールを組めます。

7. 他のwith系メソッドとの違い

「7. 他のwith系メソッドとの違い」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. 他のwith系メソッドとの違い
7. 他のwith系メソッドとの違い

LocalDateTimeクラスにはwithYearwithMonthなど、特定の要素を変更できるメソッドが揃っています。その中でもwithDayOfMonthは「日」をピンポイントで変更できるため、日付指定の操作に特化しています。

8. plusやminusとの違い

8. plusやminusとの違い
8. plusやminusとの違い

withDayOfMonthは絶対的に「この日」に変更するメソッドです。一方でplusDaysminusDaysは相対的に日数を加算または減算します。用途に応じて使い分けることが重要です。

9. 例外処理に注意しよう

9. 例外処理に注意しよう
9. 例外処理に注意しよう

存在しない日付を指定するとDateTimeExceptionが発生します。特に2月やうるう年を扱う場合は注意が必要です。安全に実装するためには、月ごとの最大日数を調べたり、入力値を検証してからwithDayOfMonthを呼び出すと安心です。

10. 実務での利用シーン

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

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

withDayOfMonthは定期処理や月次レポート作成、締め日の計算などに活用されます。業務システムやWebアプリケーションで日付のロジックを組む際に頻繁に利用されるため、初心者のうちから理解しておくと開発で役立ちます。

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

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

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
Spring の@RequestParamの使い方!テキストボックス、ラジオボタン、チェックボックス、セレクトボックスの値を受け取る。
更新記事
New2
JSP
EL式の基本構文まとめ!${}で使う書き方のルールを解説
更新記事
New3
Java
JavaのBigIntegerとisProbablePrimeメソッドを完全解説!初心者でもわかる素数判定
更新記事
New4
JSP
JSPで発生する主なエラーとは?初心者向けに原因と対処法をやさしく解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
JSP
JSPのおすすめ学習・用語まとめ【2026年最新版】初心者が知っておきたい基本をやさしく解説
No.2
Java&Spring記事人気No2
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.3
Java&Spring記事人気No3
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.4
Java&Spring記事人気No4
Spring
Thymeleaf(タイムリーフ)入門!初心者でもわかるSpring Bootとテンプレートエンジンの使い方
No.5
Java&Spring記事人気No5
Spring
Javaの@PreAuthorizeアノテーションを完全ガイド!初心者でもわかるメソッドセキュリティ設定
No.6
Java&Spring記事人気No6
Spring
Springの@Queryアノテーションを徹底解説!初心者でもわかるSpring Bootのカスタムクエリ
No.7
Java&Spring記事人気No7
Java
JavaのExceptionクラスを完全解説!初心者でも理解できる例外処理の基本
No.8
Java&Spring記事人気No8
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう