2011-12-19 6 views
0

java.text.ParseException: Date Unparseable: « Sam 1 mai 2010 00:00:00 HAE »Essayer de convertir la date de chaîne en date

Je suis en train d'analyser cette date en utilisant la classe SimpleDateFormat.

java.util.Date prevStartDate = new Date(); 
java.util.Date prevStopDate = new Date(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
prevStartDate = dateFormat.format(startDateLY); 
+3

La date que vous essayez d'analyser ne ressemble en rien à votre format de date que vous avez nous a montré. En fait, je ne vois aucun appel à «analyser» votre question du tout. Est-ce le code pertinent? – Paul

Répondre

3

Ce serait parce que vous utilisez le format de yyyy-MM-dd - vous devez ajouter chaque paramètre dans votre entrée à ce format.

Il ressemble à votre format est E MMM dd HH:mm:ss z yyyy

Vous avez donc besoin de convertir de l'un à l'autre:

static DateFormat extended = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy"); 
static DateFormat simple = new SimpleDateFormat("yyyy-MM-dd"); 

String reformat(String extendedString) { 
    Date yourDate = extended.parse(extendedString); 
    String simpleString = simple.format(yourDate); 
    return simpleString; 
} 

Ou bien,

String reformat(String dateString) { 
    return simple.format(extended.parse(dateString)); 
} 
1
DateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy"); 
Date date = (Date)formatter.parse("Sat May 01 00:00:00 EDT 2010"); 
String string = new String(date.getYear() + "-" + date.getMonth() + "-" + date.getDay()); 

devrait fonctionner mieux que juste yyyy-MM-dd.

+0

J'ai besoin du yyyy-mm-dd pour un insert mysql – kbrin80

+0

@ kbrin8 - J'ai mis à jour la réponse pour vous donner une chaîne dans ce format – Grammin

+0

Quelques problèmes avec cela. Premièrement, il utilise un formateur pour l'analyse syntaxique (bon) mais pourquoi ne pas utiliser aussi un formateur pour la sortie? Deuxièmement, l'utilisation de 'new String' est presque toujours une mauvaise décision, et en effet, dans ce cas aussi, elle force une copie du tableau de sauvegarde. – corsiKa

Questions connexes