编辑 :
我打开了一个错误,并且已被 Oracle 确认。您可以在此处遵循解决方案:https://bugs.java.com/bugdatabase/view_bug.do ?bug_id=JDK-8216414
我正在与一个 LDAP 存储库交互,该存储库存储一个人的出生日期以及时间和时区,如下所示:
我找不到使用相同模式解析和格式化生日的方法。
以下代码适用于格式化,但不适用于解析:
LocalDate date = LocalDate.of(2018, 12, 27);
String pattern = "yyyyMMdd'000000+0000'";
DateTimeFormatter birthdateFormat = DateTimeFormatter.ofPattern(pattern);
// Outputs correctly 20181227000000+0000
date.format(birthdateFormat);
// Throw a DatetimeParseException at index 0
date = LocalDate.parse("20181227000000+0000", birthdateFormat);
Run Code Online (Sandbox Code Playgroud)
以下代码适用于解析,但不适用于格式化
LocalDate date = LocalDate.of(2018, 12, 27);
String pattern = "yyyyMMddkkmmssxx";
DateTimeFormatter birthdateFormat = DateTimeFormatter.ofPattern(pattern);
// Throws a UnsupportedTemporalTypeException for ClockHourOfDay not supported
// Anyway I would have an unwanted string with non zero …Run Code Online (Sandbox Code Playgroud)