如何将日本纪元日期字符串值解析为 LocalDate 和 LocalDateTime

How to parse Japanese Era Date string values into LocalDate & LocalDateTime

如何通过 Java 8 DateTime API?

将日本纪元日期字符串输入解析为 LocalDate/LocalDateTime

日本日历日期示例;

明治23年11月29日
昭和22年5月3日
平成23年3月11日(金)14時46分
令和5年1月11日

它是通过以下方式利用 DateTimeFormatter 实现的;

DateTimeFormatter japaneseEraDtf = DateTimeFormatter.ofPattern("GGGGy年M月d日")
        .withChronology(JapaneseChronology.INSTANCE)
        .withLocale(Locale.JAPAN);

其中 GGGG 是表示 the era
(e.g. 平成 Heisei 的日文字符的代号),其余 year/month/day 值及其各自的日文字符: y年年,M月 月,d日 日。

LocalDate.parse("明治23年11月29日", japaneseEraDtf);
LocalDate.parse("昭和22年5月3日", japaneseEraDtf);
LocalDate.parse("令和5年1月11日", japaneseEraDtf);

会送出;

1890-11-29
1947-05-03
2023-01-11

对于 LocalDateTime,使用 japaneseEraDtf 中的更新模式 "GGGGy年M月d日(E)HH時mm分"

LocalDateTime.parse("平成23年3月11日(金)14時46分", japaneseEraDtf);

将导致;

2011-03-11T14:46