Sto cercando di usare Java 8 nuovo Data motivo invece di Joda e ho il seguente problema:Java 8 LocalDateTime ZonedDateTime non può analizzare la data con il fuso orario
Sia
ZonedDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
e
LocalDateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormatter.ofPattern("dd/MM/yy HH:mm.ss.SSS Z"))
tiro eccezione 'java.time.format.DateTimeParseException'. Mentre
org.joda.time.DateTime.parse("02/05/16 11:51.12.083 +04:30", DateTimeFormat.forPattern("dd/MM/yy HH:mm.ss.SSS Z"))
funziona correttamente.
Causa della eccezione è:
java.time.format.DateTimeParseException: Testo '02/05/16 11: 51.12.083 +04: 30' non poteva essere analizzato con indice 22
sto facendo qualcosa di sbagliato?
Hai provato OffsetDateTime? Non contiene informazioni sufficienti per conoscere un fuso orario effettivo; tutto ciò che trasporta è lo scostamento da UTC. –
Sebbene dall'esempio in [docs] (https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html), sembra che i due punti siano accettati come delimitatore di offset di zona ma quando lo provi, genera un'eccezione. se togli solo i due punti dovrebbe funzionare. quindi la tua stringa datetime dovrebbe essere '02/05/16 11: 51.12.083 + 0430' –
@Hank DI ha provato questo OffsetDateTime.parse (" 02/05/16 11: 51.12.083 +04: 30 ", DateTimeFormatter.ofPattern ("dd/MM/YY HH: mm.ss.SSS Z")) ma ottengo comunque la stessa eccezione. – ampofila