0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-07-18

(この記事は 地平線に行く とのマルチポストです)

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

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?