LocalDate.now() / of() / getYear() / getMonth()
| 対応: | Java 8(2014) |
|---|
『LocalDate』は時刻情報を持たない日付(年・月・日)を表すクラスです(Java 8+)。従来の java.util.Date に代わるモダンな日時 API の一部で、イミュータブル(変更不可)なオブジェクトです。
構文
// 今日の日付を取得します LocalDate today = LocalDate.now(); // 指定した日付を作成します(年, 月, 日) LocalDate date = LocalDate.of(年, 月, 日); // 年を取得します date.getYear(); // 月を数値で取得します(1〜12) date.getMonthValue(); // 日を取得します(1〜31) date.getDayOfMonth();
メソッド一覧
| メソッド | 概要 |
|---|---|
| LocalDate.now() | システムのデフォルトタイムゾーンで今日の日付を取得します。 |
| LocalDate.of(year, month, day) | 指定した年・月・日の LocalDate を作成します。 |
| getYear() | 年を int 型で返します。 |
| getMonthValue() | 月を 1〜12 の int 型で返します。 |
| getDayOfMonth() | 日を 1〜31 の int 型で返します。 |
| getDayOfWeek() | 曜日を DayOfWeek 列挙型で返します(MONDAY〜SUNDAY)。 |
| plusDays(long n) | 指定した日数を加算した新しい LocalDate を返します。 |
| isBefore(LocalDate) | この日付が指定した日付より前かどうかを boolean 型で返します。 |
サンプルコード
sample_LocalDateExample.java
import java.time.LocalDate;
import java.time.DayOfWeek;
class LocalDateExample {
public static void main(String[] args) {
// 指定した日付を作成します
LocalDate date = LocalDate.of(2025, 4, 1);
System.out.println(date.getYear()); // 『2025』と出力されます。
System.out.println(date.getMonthValue()); // 『4』と出力されます。
System.out.println(date.getDayOfMonth()); // 『1』と出力されます。
// 曜日を取得します
DayOfWeek dow = date.getDayOfWeek();
System.out.println(dow); // 『TUESDAY』と出力されます。
// 日数を加算します(イミュータブルなので新しいオブジェクトが返ります)
LocalDate next = date.plusDays(7);
System.out.println(next); // 『2025-04-08』と出力されます。
// 今日の日付を取得します
LocalDate today = LocalDate.now();
// 日付の比較をします
LocalDate past = LocalDate.of(2020, 1, 1);
System.out.println(past.isBefore(today)); // 『true』と出力されます。
System.out.println(past.isAfter(today)); // 『false』と出力されます。
}
}
LocalDateExample.java
javac LocalDateExample.java java LocalDateExample 2025 4 1 TUESDAY 2025-04-08 true false
概要
『LocalDate』はイミュータブルなため、『plusDays()』や『minusMonths()』などのメソッドを呼んでも元のオブジェクトは変わりません。変更後の日付を利用するには、返される新しいオブジェクトを変数に代入してください。
タイムゾーンを考慮する必要がある場合は ZonedDateTime、日付と時刻の両方を扱う場合は『LocalDateTime』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。