(この記事は 地平線に行く とのマルチポストです)
年が省略されている日付(月/日
)の場合
まずは、DateTimeFormatter を用意します。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd");
次に、日付を MonthDay クラスでパースします。
MonthDay monthDay = MonthDay.parse("07/18", formatter)
// ==> --07-18
それに、 現在の年を付け加えます。
LocalDate date = Year.now().atMonthDay(monthDay);
// ==> 2022-07-18
最後に、LocalDate#atStartOfDay() で日付を 00:00:00
に設定すれば、LocalDateTime クラス が取得できます。
LocalDateTime dateTime = date.atStartOfDay();
// ==> 2022-07-18T00:00
日が省略されている日付(年/月
)の場合
YearMonth クラスを使うぐらいで、あとは月日の場合と大体同じです。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu/MM")
YearMonth yearMonth = YearMonth.parse("2022/07", FORMATTER);
// ==> 2022-07
LocalDate date = yearMonth.atDay(1);
// ==> 2022-07-01
LocalDateTime dateTime = date.atStartOfDay();
// ==> 2022-07-01T00:00