Comment puis-je analyser un jour, y compris le fuseau horaire avec Joda Time
Cet extrait de code toujours traite la date dans le fuseau horaire actuel, et non pas dans le fuseau horaire dans la chaîne pour être 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 sorties:
dateTime = 2009-08-24T04:36:46.000+02:00
alors que j'attends:
dateTime = 2009-08-24T04:36:46.000+10:00
Les idées de ce que je fais mal?
Vous devez vous connecter pour publier un commentaire.
OK, de plus amples recherches sur Google m'a donné la réponse à ma propre question: utilisez
withOffsetParsed()
, de la manière suivante:Cela fonctionne.
DateTimeFormatter
semble violer "principe de moindre étonnement", en particulier dans le contexte d'une unmarshaller. Merci Steve pour déterrerwithOffsetParsed()
.aussi, vous pouvez choisir: