没有分隔符字符,java.time.DateTimeFormatter无法解析

时间:2014-07-18 10:02:18

标签: java parsing java-8 datetime-format formatter

java.time.LocalDateTime success = java.time.LocalDateTime.parse("20 01 2014 15 36 21 234",java.time.format.DateTimeFormatter.ofPattern("dd MM yyyy HH mm ss SSS"));             
java.time.LocalDateTime fails   = java.time.LocalDateTime.parse("20012014153621234",java.time.format.DateTimeFormatter.ofPattern("ddMMyyyyHHmmssSSS"));

参考:http://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

问题: 格式化程序/解析器似乎无法区分固定项和可变项。 例如。 d =用作“dd”的“day-of-month”可以是一个或两个数字(例如,8或1​​8)。 因此,解析器在尝试解析下一个“项目”时不使用“固定”长度。 但是“项目”没有分开,解析失败。

我是对的吗?有没有解决这个问题?

编辑:有趣的是,这有效:

java.time.LocalDate date1   = java.time.LocalDate.parse("20140120", java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd"));
java.time.LocalTime time1   = java.time.LocalTime.parse("153621234", java.time.format.DateTimeFormatter.ofPattern("HHmmssSSS"));

但为什么不是Date + Time?

0 个答案:

没有答案