如果我阅读了针对Locale的Javadocs,我看到英国存在一个不变的英国(我认为:P)
但是,如果我阅读课程文档,它会说:
country参数是有效的ISO 国家代码。这些代码是 大写,双字母代码为 由ISO-3166定义。你可以找到一个 这些代码的完整列表 网站,例如:http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
但是,在ISO 3166中,United Kingdom is GB
的两个字母代码那么,为什么英国的Locale countryId是英国?什么iso用于Locale对象的countryId?
答案 0 :(得分:1)
确实是ISO 3166.常量java.util.Locale.UK
的值为"en_GB"
。因此,尽管它被称为英国,它具有正确的价值。
答案 1 :(得分:1)
实际上java.util.Locale.UK
是一个确实代表英国的静态常数。然而,该常量的Locale实例使用的ISO国家/地区代码是“GB”,如ISO 3166所述。请注意,“UK”还有一个所谓的ISO国家代码预订(另请参阅Wikipedia)。为什么他们将静态语言环境命名为“UK”而不是“GB”是我能猜到的,但很可能是因为人们更习惯于“英国”而不是“GB”,尽管后者当然是ISO标准