2016-04-28 33 views
0

Ich versuche, einige der französischen Daten in JAVA zu analysieren. Hier sind einige Beispiele.Das französische Datum kann nicht analysiert werden

  • 25 septembre 2013 ein 21h42 par - Arbeits
  • 1er juillet 2013 einen 19h26 par - Nicht
  • Arbeiten

Hier ist der Code:

Date sampleDate = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRENCH) 
      .parse("25 septembre 2013 a 21h42 par"); 
    System.out.println(sampleDate); 
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    System.out.println(simpleDateFormat.format(sampleDate)); 

ich war in der Lage parse erfolgreich (das erste Datum), aber nicht in der Lage, das zweite Datum zu analysieren (1er Juli 2013 ein 19h26 Par). Aber wenn ich "er" von dem Datum entferne, funktioniert es. Also wie kann ich dieses Problem lösen? Hier

ist der Fehler:

Exception in thread "main" java.text.ParseException: Unparseable date: "1er juillet 2013 a 19h26 par" 
at java.text.DateFormat.parse(DateFormat.java:366) 
at misc.DateSample.main(DateSample.java:27) 

Kann jemand mir helfen, zu diesem Thema.?

Dank & Grüße, Amar.T

+1

Ich bin mir ziemlich sicher, dass das nicht Spanisch ist. Auch sehe ich nur den Code für einen der Termine .. – dquijada

+0

sieht wie Französisch für mich –

+2

Mögliche Duplikat von [Wie formatieren Sie den Tag des Monats zu sagen "11.", "21." oder "23." in Java?] (Http://stackoverflow.com/questions/4011075/how-do-you-format-the-day-of-the-month-to-say-11th-21st-or-23rd-in-java) Nicht gerade ein perfektes Duplikat, aber die Lösung trifft zu –

Antwort

2

Sie die Buchstaben in der ersten Token entfernen:

String s = "1er juillet 2013 a 19h26 par"; 
String[] arr = s.split(" "); 
arr[0] = arr[0].replaceAll("[\\D]", "");   
s = String.join(" ", arr); 

s ist jetzt:

"1 juillet 2013 a 19h26 par" 

Und dann verwenden für Ihre Date.

Verwandte Themen