voglio analizzare un LocalDateTime dal seguente schema:LocalDateTime.parse() con un modello solo numeri
yyyyMMddHHmmss000000
Ciò significa che il solito "yyyy ... ss" e poi a sei zeri finali.
Quindi, la formattazione funziona bene:
String p = "yyyyMMddHHmmss'000000'";
LocalDateTime.now().format(DateTimeFormatter.ofPattern(p));
e ma parsing:
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
L'eccezione:
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)
...
Non posso cambiare il formato del valore di ingresso. Come posso analizzarlo correttamente? Il mio modello è sbagliato?
Java Version: 1.8.0_60 su OSX
Per ragioni di completezza, il bug: https://bugs.openjdk.java.net/browse/JDK-8031085 – Marcel