Converts a String to a Locale.
This method takes the string format of a locale and creates the locale object from it.
LocaleUtils.toLocale("en") = new Locale("en", "")
LocaleUtils.toLocale("en_GB") = new Locale("en", "GB")
LocaleUtils.toLocale("en-GB") = new Locale("en", "GB")
LocaleUtils.toLocale("en_GB_xxx") = new Locale("en", "GB", "xxx") (#)
LocaleUtils.toLocale("en-GB-xxx") = new Locale("en", "GB", "xxx") (#)
LocaleUtils.toLocale("en__xxx") = new Locale("en", "", "xxx") (#)
LocaleUtils.toLocale("en--xxx") = new Locale("en", "", "xxx") (#)
This method validates the input strictly. The language code must be lowercase. The country code must be uppercase. The
separator must be an underscore or hyphen. The length must be correct.
- Parameters:
str
- the locale String to convert, null returns null
- Returns:
- a Locale, null if null input
- Throws:
IllegalArgumentException
- if the string is an invalid format