2016-04-28 103 views
0

我想解析一些在JAVA中的法語日期。這裏有一些樣品。無法解析法語日期

  • 25 septembre 2013 21h42相提並論 - 工作
  • 1er酒店JUILLET 2013 19h26相提並論 - 不工作

下面是代碼:

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)); 

我能成功解析(第一次約會),但無法解析第二次約會(2013年1月1日19h26)。但是,如果我從工作日期刪除「呃」。那麼如何解決這個問題呢?

以下是錯誤:

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) 

任何一個可以幫助我在這?

感謝&問候, Amar.T

+1

我很確定這不是西班牙語。 此外,我只看到其中一個日期的代碼.. – dquijada

+0

看起來像我這樣的法語 – 2016-04-28 11:38:21

+2

[你如何格式化一個月的日子來說「第11」,「第21」或「第23」在Java的?](http://stackoverflow.com/questions/4011075/how-do-you-format-the-day-of-the-month-to-say-11th-21st-or-23rd-in-java)不完全重複,但解決方案確實適用 – 2016-04-28 11:39:34

回答

2

可以刪除信件中第一個標記:

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

s現在是:

"1 juillet 2013 a 19h26 par" 

,然後用它爲您Date