андроид локализация даты

1

Я храню дату как строку где-то в своем приложении. как это:

Date updatedDate = new Date();

SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(_context);
SharedPreferences.Editor editor = settings.edit();
editor.putString(Constants.Preferences.LastUpdateDateKey, updatedDate.toLocaleString());
editor.commit();

Все работает нормально, когда язык является английским.

Но когда я переключу его на французский.

этот код выдает незаконное свойствоArgumentException

String lastUpdateDateString = settings.getString(Constants.Preferences.LastUpdateDateKey, null);

if(lastUpdateDateString!=null){             
            lastUpdateDate = new Date(Date.parse(lastUpdateDateString));             
        }

он бросает Date.parse

Как английский, так и французский, updatedDate.toLocaleString() в этом формате: 2011-12-16 22:13:32

Это должно иметь какое-то отношение к языковому коммутатору. Есть ли способ сказать синтаксический анализ даты с использованием формата?

Теги:

2 ответа

1
Лучший ответ

Вы можете использовать SimpleDateFormat это даст вам дату, и она будет исправлена для каждого языкового стандарта

Синтаксис - это SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

если вы хотите получить строку, вы можете использовать

dateFormat.format(new Date())

и если вы хотите получить Date from String, тогда

Date date = dateFormat.parse(strDate)
1

Я нашел ответ, используя SimpleFormatter.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню