2012-05-18 3 views
1

J'ai des problèmes avec mon application en essayant d'analyser une date avec le fuseau horaire America/Chicago. J'ai passé en revue un tas d'autres questions de ParseException, et je pense que j'ai obtenu tous les pièges courants avec l'analyse de date en Java. Le code suivant fonctionne pour toutes les autres dates/heures que j'ai rencontrées, mais toutes les dates avec le fuseau horaire America/Chicago sont, pour une raison quelconque, incomparables.Java Date indisponible: America/Chicago fuseau horaire

J'ai défini les paramètres régionaux pour le format dateFormat, et cela n'a pas d'importance. J'ai vérifié que toutes les autres parties étaient correctes, j'ai enlevé les caractères de contrôle invisibles, j'ai re-tapé la chaîne pour m'assurer qu'aucun caractère infâme n'était copié/collé, pourtant il émet une exception à chaque fois.

Des pensées?

dateFormat = new SimpleDateFormat("EEE MMM dd k:mm:ss zzz "); 
dateString = "Wed May 02 15:45:47 America/Chicago "; 

try { 
    entry.setDateTaken(dateFormat.parse(dateString)); 
} catch (java.text.ParseException e) { } 

J'ai mes raisons de vouloir de ne pas emprunter la voie Joda, ce qui est une chose assez simple, je ne devrais pas.

Répondre

6

Je crois le problème est que vous utilisez des ID de fuseau horaire Olson, et je ne pense SimpleDateFormat analyse syntaxique les supports. Certainement en utilisant votre code j'ai le même problème avec "Europe/Londres" donc ce n'est pas spécifique à Chicago. Pouvez-vous donner des exemples avec ce style d'identifiant de fuseau horaire que fait?

+0

Oui, lorsque j'utilise d'autres noms TimeZone, cela se brise également. Ainsi, dans SimpleDateFormat, lorsque la documentation parle de fuseaux horaires avec des noms, elle fait référence (par exemple) à "Pacific Standard Time", pas aux fuseaux horaires de TimeZone? Merci de m'avoir aidé à réaliser cela! – aha

Questions connexes