2016-11-03 2 views
0

Я пытаюсь разобрать дату в другом регионе. поэтому вместо Понедельник 31 октября было бы Lundi 31 Octobre (для французского). Я использую класс DateFormat, как предлагается official Android documentation. Таким образом, в основном это фрагмент кода, я использую:Разбор даты в другом языке не работает

dateFormat = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE); 
dateFormat.parse(myCalendar.getTime().toString()) 

Но это бросает исключение Разбор когда я его выполнения.

также myCalendar.getTime().toString() дает Mon Oct 31 12:27:08 GMT+03:00 2016

который я думаю, что это правильно, я не могу понять, почему DateFormat не может разобрать его правильно.

+0

Не могли бы вы опубликовать, как вы создали шаблон для объекта DateFormat? – Alex

ответ

1

Итак, ваша проблема заключается в том, что вы пытаетесь разобрать дату, но вы даете неверный формат для форматирования. Вместо того, чтобы преобразовать дату календаря в строку и затем проанализировать ее, вы можете использовать метод dateFormat.format.

Calendar myCalendar = Calendar.getInstance(); 
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL, Locale.FRANCE); 
Log.d("Time",dateFormat.format(myCalendar.getTime())); 

Выходной сигнал будет

Jeudi 3 Novembre 2016

Вы можете играть с форматом, изменяя стиль или с помощью SimpleDateFormat и определить формат, который соответствует вашим потребностям.

0

Вы можете попробовать что-то вроде:

SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zZ yyyy", Locale.FRANCE); 
dateFormat.parse(myCalendar.getTime().toString()); 
Смежные вопросы