小编Dar*_*noj的帖子

使用不必要的时间和时区解析和格式化 LocalDate

编辑 :

我打开了一个错误,并且已被 Oracle 确认。您可以在此处遵循解决方案:https://bugs.java.com/bugdatabase/view_bug.do ?bug_id=JDK-8216414


我正在与一个 LDAP 存储库交互,该存储库存储一个人的出生日期以及时间和时区,如下所示:

  • 如果出生日期为“27-12-2018”,则 LDAP 字符串为“20181227000000+0000”。

我找不到使用相同模式解析和格式化生日的方法。

以下代码适用于格式化,但不适用于解析:

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)

java datetime date datetime-format java-8

5
推荐指数
1
解决办法
4749
查看次数

标签 统计

date ×1

datetime ×1

datetime-format ×1

java ×1

java-8 ×1