java - 如何将 🎌 Japanese Era Date 字符串值解析为 LocalDate 和 LocalDateTime

标签 java datetime java-8 internationalization datetime-format

如何通过 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/

相关文章:

c# - 从服务器获取当前日期时间并在 C# 中将其转换为本地时间

c# - 在 asp.net 中收到阿拉伯日期时间错误

java - 改变 Stream 中的元素

Java 8 条件过滤和收集自定义 map

java - 仅当 Optional 存在时才解包

java - Spring Boot 和 AngularJS 的安全性登录页面

java - 适用于 JPA beans 的 JSF 可编辑数据表,一应俱全

java - 在其自己的类定义中将对象设置为 null

java - 如何使用 WicketTester 查询元素(组件)的文本?

java - 如何将 Calendar 对象设置为当前日期,但包含 HH :mm:ss 的 SimpleDateFormat 中的时间