2010-11-22 6 views
2

J'ai la chaîne "Tue Nov 12 2010", je veux l'analyser dans l'objet java.util.Date. Je écris ci-dessous le code pour cetteAnalyse de la chaîne à l'objet Date

DateFormat format = new SimpleDateFormat("dd/MM/yyyy"); 
Date date= format.parse("Tue Nov 12 2010"); 

Il donne exception comme ci-dessous:

java.text.ParseException: Unparseable date: "Sun Nov 21 2010"

Ne pas obtenir ce qui est mal avec elle ???

+2

À droite de la zone de texte où vous avez tapé votre question, il y a une boîte intitulée ** Comment formater **. Ça vaut le coup de lire. J'ai corrigé le formatage du code pour vous, mais vous avez maintenant posé cinq questions, l'heure de commencer à voler en solo. –

+2

Pourquoi ne voyez-vous pas que le format "jj/MM/aaaa" spécifié ne correspond pas à la date "mar 12 nov 2010"? –

+0

Il est considéré comme une bonne forme d'accepter une réponse si cela a été utile. @Alison a eu une réponse utile et la plus rapide. – Jim

Répondre

1

Le format de date que vous avez créé
nouvelle SimpleDateFormat ("dd/MM/yyyy");
Ne fera qu'analyser les dates de ce formulaire. C'est à dire. 05/10/1989 Vous devrez changer le format quelque chose de plus approprié.

7

Votre format est incorrect - si vous spécifiez un format dd/MM/yyyy, vous devez fournir la chaîne à formater dans le format correspondant (!), Par ex. 21/11/2010.

4

Ofcourse parce qu'il est pas au format

le format

pour Tue Nov 12 2010 devrait être EEE MMM dd yyyy

Have a look at docs

+1

Des documents liés, 'D' pour le jour dans l'année et' d' est pour le jour dans le mois. De plus, il n'y a pas de "Y". – codaddict

+0

@codaddict était mon erreur –

1

Pour analyser la date à laquelle vous devez fournir le format correct. Pour la date d'exemple donné par vous le format serait "EEE MMM dd yyyy"

+0

+1 pour me corriger :) –

0

Vous utilisez le mauvais format pour la date. Pour l'analyser en fonction de votre format de chaîne, utilisez "EEE MMM jj aaaa"

2

Apprenez à lire le code et utilisez votre bon sens.

 
DateFormat format = new SimpleDateFormat("dd/MM/yyyy"); 
Date date= format.parse("Tue Nov 12 2010"); 

Cela devrait être tout à fait évident que le format spécifié ne correspond pas à la chaîne en cours d'analyse. Ils sont sur des lignes adjacentes, juste l'un à côté de l'autre. Cela ne devient pas plus simple que ça.

Vous devez être capable de voir quelque chose comme ceci si vous voulez être un programmeur réussi. Si vous ne pouvez pas voir cela, comment allez-vous jamais trouver des problèmes similaires lorsque les deux lignes causant des problèmes ne sont même pas dans le même fichier de code source?

Mon conseil est de prendre la responsabilité personnelle d'apprendre à lire et à déboguer du code. Quelque chose comme ça devrait être un énorme drapeau rouge juste quand vous le tapez que les deux lignes de code ne correspondent pas.