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"));
Run Code Online (Sandbox Code Playgroud)
参考:http : //docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
问题:格式化程序/解析器似乎无法区分固定项和可变项。例如。用作“ dd”的d =“ 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"));
Run Code Online (Sandbox Code Playgroud)
但是为什么不选择日期和时间呢?