如何通过Java8JavaAPI将日本时代的日期字符串输入解析为LocalDate/LocalDateTime
?
例如日本历法;
明治23年11月29日
昭和22年5月3日
平成23年3月11日(金)14時46分
令和5年1月11日
发布于 2019-07-24 03:17:56
它是通过以下方式利用DateTimeFormatter
来实现的;
DateTimeFormatter japaneseEraDtf = DateTimeFormatter.ofPattern("GGGGy年M月d日")
.withChronology(JapaneseChronology.INSTANCE)
.withLocale(Locale.JAPAN);
模式中的GGGG
是表示时代的日语字符的标识符。
(例如,平成
黑塞),其余的年/月/日值都有各自的日语字符: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
https://stackoverflow.com/questions/57174739
复制相似问题