Заставить Android DateUtils.getRelativeDateTimeString () игнорировать языковой стандарт устройства?

Я нашел использование относительных API android.text.format.DateUtils которые возвращают такие значения, как «вчера» или «2 часа назад», очень хорошо, но мое приложение не поддерживает каждый язык, который делает Android. Итак, я по умолчанию на английском, но для каждого языка, который я не поддерживаю, относительная строка отображается в настройках устройства.

Например, например:

Last attempt: hace 11 minutos.

Я бы хотел, чтобы API вызывал по умолчанию английский для любых языков, которые я не поддерживаю. Тем не менее, я не вижу нигде, чтобы установить Locale для вызова API – я надеюсь, что я просто что-то пропустил.

Есть ли способ установить Locale только для вызова API, игнорируя настройку устройства?

В соответствии с исходным кодом класса DateUtils он использует метод Resource.getSystem() и Locale.getDefault() для форматирования даты и времени. Вы можете изменить Locale по умолчанию с помощью Locale.setDefault() но я не думаю, что можно изменить возвращаемое значение метода Resource.getSystem() . Вы можете попытаться изменить локаль по умолчанию на Locale.US но мне кажется, что в этом случае результаты будут еще хуже.

Это работает для меня до Android 7

  void forceLocale(Locale locale) { Configuration conf = getBaseContext().getResources().getConfiguration(); updateConfiguration(conf, locale); getBaseContext().getResources().updateConfiguration(conf, getResources().getDisplayMetrics()); Configuration systemConf = Resources.getSystem().getConfiguration(); updateConfiguration(systemConf, locale); Resources.getSystem().updateConfiguration(conf, getResources().getDisplayMetrics()); Locale.setDefault(locale); } void updateConfiguration(Configuration conf, Locale locale) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){ conf.setLocale(locale); }else { //noinspection deprecation conf.locale = locale; } } 
Intereting Posts
Как я могу отличить видеокарты, кодированные H264, специальным тегом? GetClass () в абстрактном классе дает неоднозначный вызов метода Обработка возвратов платежей в приложениях в версии 3 Android: как отключить прокрутку CalendarView Не могу добавить HeaderView в ListFragment Получение запроса разрешения «на автономный доступ» при вызове GoogleAuthUtil.getToken Как объединить SDK PayPal и SDK Braintree в студии Android System.gc () вызывает замедление от второго запуска Activity Поддерживает ли Android режим платежей In-App через PayPal? Ошибка подключения приложения Google API для Google Диска Как вы передаете изображения (растровые изображения) между действиями андроида с помощью пакетов? Nexus 7, Android 4.3: тот же каталог, два канонических пути Преобразование приложения для управления движком Delphi 5 на Android – вам нужен совет по подходу Ошибка setTextViewTextSize в виджетах только без Jelly Bean Как запустить бесконечный цикл в Android без замораживания пользовательского интерфейса?