java.util.Locale 构造函数在 Java 8 中使用“gsw”作为瑞士语言区域时不起作用

Kat*_*ana 6 java locale jodatime

上下文:

一位客户让我帮助他使用一种方法来格式化 Joda DateTime,并将 Locale 指定为参数。

问题:

使用“gsw”(瑞士德语)作为语言似乎对翻译没有影响(在我的情况下回到英语)。“gsw”是 ISO639-2(即 ISO639 alpha-3,Java 语言环境表示支持,https: //docs.oracle.com/javase/8/docs/api/java/util/Locale.html)的一部分)。

我确认 100% 确定,gsw 是 alpha-3 的一部分,但它不是 alpha-2 (ISO639-1) 的一部分:https ://www.loc.gov/standards/iso639-2/php/ English_list.php 我试过其他语言,它们是 alpha-3 的一部分,但没有出现在 alpha-2 中,我看到了同样奇怪的行为。我可能没有很好地阅读语言环境帮助中心吗?

代码: //所有类型都属于joda.time,除了Locale,它是java.util

DateTimeZone dtZone = DateTimeZone.forID(IANATimezone);
DateTime dtus = dateTime.withZone(dtZone);
Locale locale = new Locale(Language, Region);
DateTimeFormatter dtf = DateTimeFormat.fullDateTime().withLocale(locale); 
Run Code Online (Sandbox Code Playgroud)