chcę analizować LocalDateTime z następującego wzoru:LocalDateTime.parse() wzorkiem tylko liczby
yyyyMMddHHmmss000000
Oznacza to, że zwykłe "yyyy ... ss", a następnie sześć końcowe zera.
Więc formatowanie działa dobrze:
String p = "yyyyMMddHHmmss'000000'";
LocalDateTime.now().format(DateTimeFormatter.ofPattern(p));
ale i analizowania:
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
wyjątkiem:
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)
...
nie mogę zmienić format wartości wejściowej. Jak mogę je poprawnie przeanalizować? Czy mój wzorzec jest zły?
Java wersja: 1.8.0_60 na OSX
W celu uzupełnienia, błąd: https://bugs.openjdk.java.net/browse/JDK-8031085 – Marcel