online joda examples dates java datetime timezone jodatime

java - examples - ¿Cómo puedo analizar una fecha, incluida la zona horaria con Joda Time?



jodatime difference between dates (2)

Este fragmento de código siempre analiza la fecha en la zona horaria actual, y no en la zona horaria de la cadena que se está analizando.

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

Emite:

dateTime = 2009-08-24T04:36:46.000+02:00

mientras que yo espero:

dateTime = 2009-08-24T04:36:46.000+10:00

¿Alguna idea de lo que estoy haciendo mal?


OK, Google adicional me dio la respuesta a mi propia pregunta: use withOffsetParsed() , así:

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");

Esto funciona.


también puedes elegir:

// parse using the Paris zone DateTime date = formatter.withZone(DateTimeZone.forID("Europe/Paris")).parseDateTime(str);