«en-US» - это языковой тег IETF . Хотя класс Java'a Locale явно основан на языковых тегах IETF, он использует подчеркивания вместо дефисов при отделении кодов языков от кодов стран (а также вариантов), поэтому вызывается toString()
для эквивалентного Locale
даст вам en_US
.
Начиная с Java 7, вы можете использовать Locale.forLanguageTag(String)
и toLanguageTag()
для преобразования между языковыми тегами и Locale
объектами.
При преобразовании строк в Locale
объекты рекомендуется нормализовать, разбив компоненты на дефисы и подчеркивания, поместив в нижний регистр первый компонент (код языка) и прописные буквы второго компонента (код страны).