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或18)。 因此,解析器在尝试解析下一个“项目”时不使用“固定”长度。 但是“项目”没有分开,解析失败。
我是对的吗?有没有解决这个问题?
编辑:有趣的是,这有效:
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?