Question

Le SimpleDateFormat:

SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");

L'exception lancée par pdf.parse("Mar 30 2010 5:27:40:140PM");:

java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"

Toutes les idées?


Edit: Merci pour les réponses rapides. Vous étiez tous corrects, je viens manqué cette phrase clé dans les SimpleDateFormat docs -. Je devrais probablement appeler un jour

Était-ce utile?

La solution

De SimpleDateFormat javadocs :

  

Mois: Si le nombre de modèle   lettres est 3 ou plus, le mois est   interprété comme du texte; sinon, il est   interprété comme un nombre.

Essayez d'utiliser comme modèle "dd MMM aaaa"

Autres conseils

Tout d'abord, trois mois-char doivent être représentés par MMM. En second lieu, une à deux heures de chiffres doivent être représentés par h. Troisièmement, Mar semble être l'anglais, vous devez fournir un Locale.ENGLISH, sinon il ne fonctionnera pas correctement dans les machines avec une autre locale par défaut.

Les travaux suivants:

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy h:mm:ss:SSSa", Locale.ENGLISH);
System.out.println(sdf.parse("Mar 30 2010 5:27:40:140PM"));

Résultat (je suis à GMT-4 w / o DST):

Tue Mar 30 17:27:40 BOT 2010

Voir aussi le java.text.SimpleDateFormat javadoc .

Pourquoi vous l'avez appelé pdf est au-delà de moi, donc je rebaptisèrent sdf;)

MM signifie mois numérique. Utilisez MMM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top