Java 8 Java 8格式化日期时间DDMMYYYYHMMSSS,给出错误文本';05052021亿';无法在索引4处分析

Java 8 Java 8格式化日期时间DDMMYYYYHMMSSS,给出错误文本';05052021亿';无法在索引4处分析,java-8,java-time,Java 8,Java Time,我试图使用模式“ddmmyyyyhmmssss”将字符串“05050210000000”解析为LocalDateTime对象,但在线程“main”java.time.format.DateTimeParseException中得到错误异常:无法在索引4处解析文本“050520210000000” 代码如下 String strDate = "05052021000000000"; DateTimeFormatter formatter = DateTimeFormatter

我试图使用模式
“ddmmyyyyhmmssss”
将字符串
“05050210000000”
解析为
LocalDateTime
对象,但在线程“main”java.time.format.DateTimeParseException中得到错误
异常:无法在索引4处解析文本“050520210000000”

代码如下

String strDate = "05052021000000000";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyyHHmmssSSS");
LocalDateTime dateTime = LocalDateTime.parse(strDate,formatter);
System.out.println(dateTime);
当我试图用模式
ddMMyyyy
格式化日期
0505021
时,给出了错误:
线程“main”java.time.format.DateTimeParseException中的异常:无法解析文本“0505021”:无法从TemporalAccessor:{}获取LocalDateTime,ISO解析为2021-05-05类型java.time.format.parsed

如果我在日期和时间之间添加
'-'
,它可以正常工作

String strDate = "05052021-000000000";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ddMMyyyy-HHmmssSSS");
LocalDateTime dateTime = LocalDateTime.parse(strDate,formatter);
System.out.println(dateTime);
这也适用于具有任何分隔符的模式,如
“dd:MM:yyyy HH:MM:ss:SSS”
,但不适用于没有任何分隔符的模式,如
“ddmmyyyyhhmmssss”


我使用的是Java1.8.0_181,默认语言环境是en_US。

这是Java8中的一个bug,在Java9中修复了。看看这个