年が省略されている日付(月/日
)の場合
まずは、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