java.time.LocalDateクラスは、タイムゾーンのない日付を扱うクラスです。
java.time.LocalDateの特徴
LocalDateは以下の特徴があります。
- Java8で追加された比較的新しいAPIである
- 情報として「年、月、日」を持つ
(時間に関する情報は持たない) - タイムゾーン情報は持たない
(タイムゾーンを扱いたい場合はZonedDateTimeを使用ください) - イミュータブル(不変)オブジェクトである
java.time.LocalDateの継承・実装
継承クラス
・java.lang.Object
・java.time.LocalDate
実装インターフェース
・java.io.Serializable
・java.lang.Comparable<ChronoLocalDate>
・java.time.chrono.ChronoLocalDate
・java.time.temporal.Temporal
・java.time.temporal.TemporalAccessor
・java.time.temporal.TemporalAdjuster
導入バージョン
・JDK1.8
java.time.LocalDateのAPI
型 | 定数 | 説明 |
---|---|---|
LocalDate | MAX | LocalDateの最大値 ※「+999999999-12-31」 |
LocalDate | MIN | LocalDateの最小値 ※「-999999999-01-01」 |
戻値型 | メソッド | 静的 | 説明 |
---|---|---|---|
LocalDate | now() | ◯ | デフォルトのタイムゾーン現在日付を取得する |
LocalDate | of(int y, int m, int d) | ◯ | 年月日を指定してLocalDateを取得する |
int | compareTo(LocalDate d) | LocalDateを比較する | |
int | getDayOfMonth() | 月の日を取得する(1~31) | |
DayOfWeek | getDayOfWeek() | 曜日を取得する(列挙型DayOfWeek) | |
int | getDayOfYear() | 年の日を取得する(1~366) | |
Month | getMonth() | 月を取得する(列挙型Month) | |
int | getMonthValue() | 月を取得する(1~12) | |
int | getYear() | 年を取得する | |
LocalDate | minusDays(long days) | 指定した日数を減算した結果を返す | |
LocalDate | minusMonths(long months) | 指定した月数を減算した結果を返す | |
LocalDate | minusWeeks(long weeks) | 指定した週数を減算した結果を返す | |
LocalDate | minusYears(long years) | 指定した年数を減算した結果を返す | |
LocalDate | plusDays(long days) | 指定した日数を加算した結果を返す | |
LocalDate | plusMonths(long months) | 指定した月数を加算した結果を返す | |
LocalDate | plusWeeks(long weeks) | 指定した週数を加算した結果を返す | |
LocalDate | plusYears(long years) | 指定した年数を加算した結果を返す | |
LocalDate | withDayOfMonth(int day) | 指定した日を置き換えた結果を返す (指定する日は月の日) | |
LocalDate | withDayOfYear(int day) | 指定した日を置き換えた結果を返す (指定する日は年の日) | |
LocalDate | withMonth(long month) | 指定した月を置き換えた結果を返す | |
LocalDate | withYear(long year) | 指定した年を置き換えた結果を返す | |
boolean | isAfter(LocalDate d) | dよりも後の日時の場合はtrueを返す | |
boolean | isBefore(LocalDate d) | dよりも前の日時の場合はtrueを返す | |
boolean | isEqual(LocalDate d) | dと同じ日時の場合はtrueを返す |
java.time.LocalDateサンプル
- (LocalDateの生成)
-
// 現在日付で生成する LocalDate now = LocalDate.now(); System.out.println(now); → 2023-08-01 // 日付を数値で指定して生成する LocalDate ld = LocalDate.of(2023, 9, 16); System.out.println(ld); → 2023-09-16
- (日付の加算)
-
// 3日加算 LocalDate d = ld.plusDays(3); // -2年加算 LocalDate d = ld.plusYears(-2); //結果、2年の減算になります
- (日付の減算)
-
// 3日減算 LocalDate d = ld.minusDays(3); // -2年減算 LocalDate d = ld.minusYears(-2); //結果、2年の加算になります
- (日付の書き換え)
-
// 日を当月の25日に設定する LocalDate d = ld.withDayOfMonth(25); // 年を2028年に設定する LocalDate d = ld.withYear(2028);
コメント