JavaのLocalDateとgetDayOfMonthの使い方!初心者向け日付の操作ガイド
生徒
「Javaで今日が月の何日なのかを知るには、どうすればいいんですか?」
先生
「それならLocalDateクラスのgetDayOfMonthメソッドを使えば簡単に取得できますよ。」
生徒
「えっ、そんなメソッドがあるんですね!使い方を教えてください!」
先生
「よし、じゃあjava.timeパッケージの基本から、getDayOfMonthメソッドの具体的な使い方までしっかり学んでいきましょう。」
1. java.timeパッケージとは?
Javaのjava.timeパッケージは、Java8以降で使える日付と時刻を扱うための標準ライブラリです。それまでよく使われていたjava.util.DateやCalendarに代わる、より使いやすく安全なAPIとして登場しました。
java.timeには、LocalDate(日付のみ)、LocalTime(時刻のみ)、LocalDateTime(日付+時刻)などのクラスがあり、用途に応じて使い分けられます。
2. LocalDateクラスの基本
LocalDateクラスは、「年月日」の情報を扱うためのクラスです。時間やタイムゾーンの情報は含みません。例えば、誕生日や祝日などの固定の日付を扱いたいときに便利です。
現在の日付を取得するには、以下のように記述します。
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("今日の日付: " + today);
}
}
今日の日付: 2025-09-04
LocalDate.now()を使えば、システムの日付を簡単に取得できます。
3. getDayOfMonthメソッドとは?
getDayOfMonthメソッドは、LocalDateのインスタンスから「月の何日か」を整数で取得するメソッドです。例えば、2025年9月4日であれば「4」が返されます。
使い方はとても簡単で、以下のように記述します。
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2025, 9, 4);
int day = date.getDayOfMonth();
System.out.println("月の日付: " + day);
}
}
月の日付: 4
getDayOfMonthは、月の中で何日目かを知りたいときにとても便利です。日付による条件分岐などにも使えます。
4. よく使う関連メソッドも覚えよう
LocalDateには他にも、便利な日付取得メソッドが多数用意されています。以下はその一例です。
- getYear():年を取得(例:2025)
- getMonth():月の列挙型を取得(例:SEPTEMBER)
- getMonthValue():月の数値(例:9)
- getDayOfWeek():曜日(例:THURSDAY)
これらを組み合わせれば、カレンダーのようなUI表示や、バッチ処理のスケジュール条件なども柔軟に組み立てられます。
5. 今日が月末かを判定する方法
getDayOfMonthを使って、今日が月末かどうかを調べる方法を紹介します。
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
int todayDay = today.getDayOfMonth();
int lastDay = today.lengthOfMonth();
if (todayDay == lastDay) {
System.out.println("今日は月末です");
} else {
System.out.println("今日は月末ではありません");
}
}
}
今日は月末ではありません
lengthOfMonth()を使えば、現在の月が何日あるかを取得できます。それとgetDayOfMonth()を比較すれば、月末かどうかを簡単に判断できます。
6. getDayOfMonthを活用する実例
getDayOfMonthメソッドは、日付に関するロジックを組む場面で役立ちます。例えば以下のようなケースです:
- 月の初めや月末にだけ特別な処理をしたい場合
- 毎月10日や20日にメール送信するようなスケジュール設定
- 日付の入力チェックで1〜31の範囲を確認したいとき
Javaでは、こうした日付の計算が非常に簡単にできるようになっており、業務アプリケーションでもよく使われます。
7. 開発現場での実用例と注意点
開発の現場では、getDayOfMonthを使って帳票の締め処理やレポート生成タイミングの条件分岐などにも利用されます。
ただし、月によって日数が異なるため、ロジックを書くときにはlengthOfMonth()などと組み合わせて使うことがポイントです。特にうるう年の2月などでは28日や29日で変化します。
また、ユーザー入力を使って日付を生成する場合は、日付が正しいかtry-catchやDateTimeParseExceptionでエラーハンドリングすることも重要です。