クラス
| LocalDate | 日付を扱う |
| LocalTime | 時間を扱う |
| LocalDateTime | 日付と時間を扱う |
インスタンス生成
| now() | 現在時間取得 | LocalDate.now() |
| of() | 数値指定 | LocalDate.of(2024,11,25) |
| parse() | 文字列から | LocalDate.parse("2024-11-25") |
// 現在日時の取得
LocalDate d1 = LocalDate.now();
// 特定日時
LocalDate d2 = LocalDate.of(2024,11,25);
// 特定日時
LocalDateTime dt1 = LocalDateTime.of(2025,1,3,12,30,50);
// 文字列
LocalDate d3 = LocalDate.parse("2024-11-24");
メソッド
| isAfter(値) | 値より後か? | d1.isAfter(d2) |
| isBefore(値) | 値より前か? | d1.isBefore(d2) |
| isEqual(値) | 値と同じか? | d1.isEqual(d2) |
| plus単位(値) | 単位(Years,Months,Days,Hours,Minutes,Seconds)分足して返す | d.plusDay(5) |
| minus単位(値) | 単位(Years,Months,Days,Hours,Minutes,Seconds)分引いて返す | d.minusDay(5) |
| get単位() | 単位(Year,MonthValue,DayOfMonth,DayOfWeek,Hour,Minute,Second)取得 | d.getDayOfMonth() |
| with単位() | 単位(Year,MonthValue,DayOfMonth,Hour,Minute,Second)設定 | d = d.withDayOfMonth(25) |
// 前後関係
if( d1.isAfter(d2)) {
System.out.println("d1が後");
}else {
System.out.println("d2が後");
}
// 5日後
LocalDate d4 = d1.plusDays(5);
System.out.println(d4);
System.out.println(d1.getYear()); // 年
System.out.println(d1.getMonthValue()); // 月
System.out.println(d1.getDayOfMonth()); // 日
// 日を1日に
d1 = d1.withDayOfMonth(1);
System.out.println(d1);
書式
format(書式)。書式はDateTimeFormatterクラス。DateTimeFormatter.ofPattern(書式文字列)で生成。
文字列化
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("y年MM月dd日");
System.out.println(d1.format(dtf));
文字列から
String str = "2025/06/08";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("y/MM/dd");
LocalDate d = LocalDate.parse(str, dtf);
System.out.println(d);
書式記号
| 記号 |
意味 |
例 |
| y | 年 | 2025 |
| M | 月 | 6 |
| MM | 月(2桁) | 06 |
| d | 日(数字) | 8 |
| dd | 日(2桁) | 08 |
| H | 時(0~23) | 9 |
| HH | 時(2桁、0~23) | 09 |
| h | 時(1~12) | 3 |
| hh | 時(2桁、1~12) | 03 |
| m | 分 | 5 |
| mm | 分(2桁) | 05 |
| s | 秒 | 7 |
| ss | 秒(2桁) | 07 |
| a | 午前/午後 | AM / PM |
| E | 曜日(短縮) | 日 |
| EEEE | 曜日(完全) | 日曜日 |
| Z | タイムゾーン(+0900) | +0900 |
| XXX | ISO 8601形式の時差 | +09:00 |
間隔
// 2つのLocalDateの間隔
long days = ChronoUnit.DAYS.between(d1, d2);
System.out.println(days);
他の型との変換
java.sql.Dateとの変換
// java.sql.Dateへ変換
Date d = Date.valueOf(d1);
System.out.println(d);
// java.sql.Dateから変換
LocalDate d5 = d.toLocalDate();
System.out.println(d5);