Per gestire correttamente uno xs:dateTime con JAXB, devo scrivere il mio convertitore da String
->java.time.OffsetDateTime
.xsd: dateTime to Java OffsetDateTime
Come menzionato nella definizione dello schema XML, dateTime è stato ispirato dalla ISO 8601. Ho usato OffsetDateTime.parse(s, DateTimeFormatter.ISO_OFFSET_DATE_TIME)
per analizzare lo xs:dateTime
, che funziona bene per es.
"2007-12-03T10:15:30+01:00" //or
"2007-12-03T10:15:30Z"
Purtroppo, nel xs:dateTime
l'offset parte is declared optional, quindi l'analisi del valido
"2016-03-02T17:09:55"
genera DateTimeParseException
.
C'è un DateTimeFormatter
per OffsetDateTime, che gestisce anche unzoned xs:dateTime
s (probabilmente con un fuso orario predefinito)?
Ah, quindi, quando manca l'offset, si interpreta la data-ora nel fuso orario della propria JVM. Penso che userò 'localDateTIme.atZone (ZoneId.systemDefault()). ToOffsetDateTime()'. Non è un po 'più facile da leggere? –