Come posso analizzare una data compresa fuso orario con Joda Tempo
Domanda
Questo frammento di codice analizza sempre la data nel fuso orario corrente, e non nel fuso orario nella stringa di essere analizzato.
final DateTimeFormatter df = DateTimeFormat
.forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");
final DateTime dateTime = df
.parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009");
System.out.println("dateTime = " + dateTime);
// outputs dateTime = 2009-08-24T04:36:46.000+02:00
E 'uscite:
dateTime = 2009-08-24T04:36:46.000+02:00
considerando che mi aspetto:
dateTime = 2009-08-24T04:36:46.000+10:00
Tutte le idee che sto facendo male?
Soluzione
OK, alcune Googling mi ha dato la risposta alla mia domanda: utilizzare withOffsetParsed()
, come:
final DateTimeFormatter df = DateTimeFormat
.forPattern("EEE MMM dd HH:mm:ss 'GMT'Z yyyy");
final DateTime dateTime = df.withOffsetParsed()
.parseDateTime("Mon Aug 24 12:36:46 GMT+1000 2009");
Questo funziona.
Altri suggerimenti
Inoltre è possibile scegliere:
// parse using the Paris zone
DateTime date = formatter.withZone(DateTimeZone.forID("Europe/Paris")).parseDateTime(str);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow