<分区>
我想从以下模式解析 LocalDateTime:
yyyyMMddHHmmss000000
这意味着通常的“yyyy...ss”,然后是六个尾随零。
因此,格式化工作正常:
String p = "yyyyMMddHHmmss'000000'";
LocalDateTime.now().format(DateTimeFormatter.ofPattern(p));
然后解析:
String p, v;
p = "yyyyMMddHHmmss"; // without '000000'
v = "20160131235930";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it works
p = "yyyy-MMddHHmmss'000000'"; // with '-' in between
v = "2016-0131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it works
p = "yyyyMMddHHmmss'000000'"; // with '000000' but without '-'
v = "20160131235930000000";
LocalDateTime.parse(v, DateTimeFormatter.ofPattern(p)); // it throws Exception
异常:
java.time.format.DateTimeParseException: Text '20160131235930000000' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1947)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1849)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)
...
我无法更改输入值的格式。我怎样才能正确解析它?我的模式错了吗?
Java 版本:OSX 上的 1.8.0_60