177 votes

Comment analyser une date ?

Je suis en train d’analyser cette date avec `` et il ne fonctionne pas :

Si j’essaie ce code avec strDate = `` , j’ai une réponse positive. Quel est le problème ? Comment puis-je analyser ce format ?

PS. j’ai obtenu cette date d’un `` et il n’y a aucune instruction sur la façon de modifier le format de date que j’obtiens lorsque l’utilisateur sélectionne une date.

240voto

jlarson Points 3823

Vous ne pouvez pas attendre pour analyser une date avec un SimpleDateFormat qui est mis en place avec un format différent.

Pour analyser votre "Jeu Juin 18 20:56:02 HAE 2009" chaîne de date vous avez besoin d'un SimpleDateFormat comme ceci (en gros):

SimpleDateFormat parserSDF=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy");

L'utiliser pour analyser la chaîne en un Jour, et vos autres SDF pour mettre la Date dans le format que vous voulez.

JavaDoc: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

50voto

Eddie Points 27755

Le problème, c'est que vous avez une date formatée comme ceci:

Thu Jun 18 20:56:02 EDT 2009

mais à l'aide d'un SimpleDateFormat qui est

yyyy-MM-dd

Les deux formats ne sont pas d'accord. Vous devez construire un SimpleDateFormat qui correspond à la mise en page de la chaîne que vous êtes en essayant de l'analyser en une Date. Doublure de choses à faire, il est facile de voir, vous voulez un SimpleDateFormat comme ceci:

EEE MMM dd HH:mm:ss zzz yyyy
Thu Jun 18 20:56:02 EDT 2009

De vérifier la JavaDoc de la page je lien et de voir comment les caractères sont utilisés.

12voto

Yishai Points 42417

Que diriez - getSelectedDate? De toute façon, plus précisément sur votre code en question, le problème vient de cette ligne:

new SimpleDateFormat("yyyy-MM-dd");

La chaîne qui va dans le constructeur doit correspondre au format de la date. La documentation de la façon de le faire est ici. On dirait que vous besoin de quelque chose de proche de "EEE MMM j HH:mm:ss zzz aaaa"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X