2013-05-17 2 views
1

J'ai un SimpleDateFormat comme ceci:ne peut pas analyser avec chaîne simple Format Date

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss"); 

et en essayant d'analyser ce 2012-Jul-29 17:14:39 mais je m `obtenir

java.text.ParseException: Unparseable Date: "2012-Jul-29 17:14:39" à java.text.DateFormat.parse (Source inconnue) à com.sysplan.visixd.blastgauge.BGParser.main (Parser.java:396)

Une idée pourquoi?

+7

essayer 'nouveau SimpleDateFormat (" yyyy-MMM-dd HH: mm: ss ", Locale.ENGLISH);' – johnchen902

+0

Merci , ça a marché ! – Sergiu

+0

Cela fonctionne bien pour moi. Pouvez-vous partager le code complet? –

Répondre

3

Il semble être un problème locale, j'ai essayé cela sans aucune erreur

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss").parse("2012-Jul-29 17:14:39"); 

Cependant cela a échoué:

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.TAIWAN) 
     .parse("2012-Jul-29 17:14:39"); 

Il semble donc Pour être un problème de locale, vous devez spécifier votre locale à ENGLISH

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH) 
     .parse("2012-Jul-29 17:14:39"); 

C'est:

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(
     "yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH); 
+0

Pourquoi est-ce que ça ne peut pas être une locale automatique? –

+0

@IgorGanapolsky Le automatique dépend de l'environnement de l'utilisateur et n'est pas nécessairement 'Locale.ENGLISH'. – johnchen902

+0

Pourquoi supposez-vous qu'il doit être anglais? –

2

Essayez cette

SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH); 
0

essayer cette

new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss", Locale.ENGLISH); 
0

Vous pouvez utiliser le code suivant:

import java.text.DateFormat; 
import java.util.Calendar; 

public static void main(String[] args) { 
     // TODO Auto-generated method stub 

Calendar now = Calendar.getInstance(); 
DateFormat formateadorFechaMedia = DateFormat.getDateInstance(DateFormat.MEDIUM); 
System.out.println(formateadorFechaMedia.format(now.getTime())); 

} 
} 
Questions connexes