У меня возникла странная проблема локализации дат. При запуске моего приложения на эмуляторе со шведским языком (sv) все работает нормально. Даты форматируются в соответствии с: YYYY-MM-DDЛокализация даты samsung galaxy
Однако, когда я бегу же приложения на дату через Samsung Galaxy S4 в конечном итоге, как: дд-мм-гггг
Locale.getDefault(). getLanguage() оценивает значение «sv» в обоих случаях.
Я использую следующий фрагмент кода, чтобы получить строку с датой
public static String getDateString(Date date) {
return android.text.format.DateFormat.getDateFormat(App.getContext()).format(date);
}
Локализация работает хорошо, когда дело доходит до остальной части пользовательского интерфейса.
Любые идеи?
В документации, в которой говорится: «В тех случаях, когда система не предоставляет подходящий шаблон, этот класс предлагает метод getBestDateTimePattern (Locale, String).: Здесь: http://developer.android.com/reference /android/text/format/DateFormat.html Также обратите внимание, что для Locale вы можете использовать это: 'Locale l = new Locale (" sv_SE ");' –
Я уже сталкивался с такими проблемами, как вы, поэтому я обнаружил хороший класс util http://developer.android.com/reference/android/text/format/DateUtils.html – betorcs
Спасибо за ваши комментарии. Я посмотрел на эти методы, но по-прежнему считаю поведение странным. Если мне нужно создать локаль, чтобы использовать метод форматирования, я все еще могу просто проверить язык и так что-то вроде 'If (Locale.getDefault(). GetLanguage(). Equals (" sv ")) return new SimpleDateFormat («yyyy-MM-dd»). format (date); ' В любом случае спасибо, я попытаюсь посмотреть класс Util или попытаюсь использовать getBestDateTimePattern –