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

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

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

Last attempt: hace 11 minutos.

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

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

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

В соответствии с исходным кодом класса 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; } }