年/月/日 の一部が省略された日付をパースして LocalDateTime を取得する方法

年が省略されている日付(月/日)の場合

まずは、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