如何通过 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 的日文字符的指示符
(例如平成
Heisei ),其余的年/月/日值及其各自的日文字符: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
关于java - 如何将 🎌 Japanese Era Date 字符串值解析为 LocalDate 和 LocalDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174739/