Comment puis-je parsingr une date, y compris le fuseau horaire avec Joda Time

Cet extrait de code parsing toujours la date dans le fuseau horaire actuel et non dans le fuseau horaire de la chaîne analysée.

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 

Il produit:

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

alors que j’attends:

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

Des idées sur ce que je fais mal?

OK, plus de googling m’a donné la réponse à ma propre question: utiliser withOffsetParsed() , comme ça:

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

Cela marche.

vous pouvez également choisir:

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