Comment reconnaître le fuseau horaire zoulou dans Java DateUtils.parseDate?

J’ai des dates au format 2008-12-23T00:00:00Z . Cela ressemble beaucoup à un format ISO 8601 avec un fuseau horaire en zoulou (UTC). Je pensais que le code suivant l’parsingrait (en utilisant commons-lang ):

 Ssortingng pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern(); Date d = DateUtils.parseDate(dateToParse, new Ssortingng[] { pattern }); 

Si je prends le même schéma ( yyyy-MM-dd'T'HH:mm:ssZZ ) mais supprime le fuseau horaire, cela fonctionne.

Savez-vous comment je peux reconnaître le fuseau horaire zoulou? Je n’ai access qu’à Java 1.4 et à Jakarta commons-lang. Pas encore de temps Joda pour moi …

Ressemble à un bogue dans FastDateFormat de commons-lang. Parlez-leur de cela, et vous devriez éventuellement trouver une solution. Jusqu’à ce que vous puissiez essayer de prétraiter les dates et remplacer “Z” par “+00”

Je pense que commons-lang utilise le format DateFormat ou SimpleDateFormat intégré à java qui lance une exception ParseException pour votre date. Si toutes vos chaînes d’entrée se terminent par le Z final, vous pouvez utiliser ceci:

 java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // explicitly set timezone of input if needed df.setTimeZone(java.util.TimeZone.getTimeZone("Zulu")); java.util.Date date = df.parse("2008-12-23T00:00:00Z");