2011-08-12 9 views
0

J'ai une chaîne nommée DateCompareOld, it has the value "Fri Aug 12 16:08:41 EDT 2011". Je veux convertir ceci en objet de date.Chaîne Java à date, ParseException

SimpleDateFormat dateType = new SimpleDateFormat("E M dd H:m:s z yyyy"); 
Date convertDate = dateType.parse(DateCompareOld); 

Mais chaque fois que j'essaie ceci, j'obtiens une exception d'analyse. J'ai essayé d'autres critères de formatage SimpleDateFormat, mais cela échoue toujours.

Suggestions?

Répondre

5

Essayez ce format:

EEE MMM dd HH:mm:ss zzz yyyy 

Test rapide:

public static void main(String[] args) throws Exception { 
    DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
    System.out.println(df.parse("Fri Aug 12 16:08:41 EDT 2011")); 
} 

// outputs 
Fri Aug 12 15:08:41 CDT 2011 

sortie est CDT, puisque c'est là où je suis, mais la valeur est juste.

+0

cela fonctionne correctement merci – CQM

+0

FYI J'avais un mauvais champ de secondes; J'ai mis à jour la réponse. –

2
DateFormat dateType = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 
dateType.setLenient(false); 
Date convertDate = dateType.parse(DateCompareOld); 
0

Notez que la chaîne est passé à SimpleDateFormat() doit être corrigée "EEE MMM dd HH: mm: ss z yyyy"

Voici le code:

import java.util.Date; 
import java.text.SimpleDateFormat; 
import java.text.ParseException; 
public class DateTest{ 
public static void main(String []args){ 
    String DateCompareOld = "Fri Aug 12 16:08:41 EDT 2011"; 
    SimpleDateFormat dateType = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
    Date convertDate = new Date(); 
    try{ 
    convertDate = dateType.parse(DateCompareOld); 
    }catch(ParseException pex){ 
     pex.printStackTrace(); 
    } 
    System.out.println(convertDate.toString()); 
    } 

} 
Questions connexes