如何将日文纪元日期字符串值解析为本地日期(&A;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
(例如平成
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
相关文章