default locale for getRelativeTimeSpanString

android, datetime, locale, relative-date

Solution

Your solution was almost correct.

However, since the strings are loaded from the system resources, you must update the configuration of the system resources. Below is what I did:

    Configuration configuration = new Configuration(Resources.getSystem().getConfiguration());
        configuration.locale = Locale.GERMANY; // or whichever locale you desire
        Resources.getSystem().updateConfiguration(configuration, null);

(NB: From Jelly Bean MR1 onwards, it is recommended to use

configuration.setLocale(Locale.GERMANY);

to change the locale rather then setting the member directly.)

Problem

I override the locale of my app using: ``` Locale locale = new Locale("ca"); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); ``` But it seems that `getRelativeTimeSpanString` doesn't work with application context, and instead use the system locale.

Original source