Я хочу, чтобы разобрать LocalDateTime из следующего рисунка:LocalDateTime.parse() с рисунком только номера
yyyyMMddHHmmss000000
Это означает, что обычный «гггг ... сс», а затем шесть завершающие нули.
Так, форматирование работает отлично:
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 Версия: 1.8.0_60 на OSX
Для полноты, ошибка: https://bugs.openjdk.java.net/browse/JDK-8031085 – Marcel