2016-04-28 3 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)); 

Я был в состоянии (первая дата), но не может проанализировать вторую дату (1ееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееееее Но если я удалю «er» со дня его работы. Итак, как решить эту проблему?

Здесь ошибка:

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

выглядит как французский для меня –

+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) Не совсем идеальный дубликат, но решение действительно применяется –

ответ

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.