Local.getCountry()何时返回联合国M.49 3位代码而不是ISO 3166 2字母代码?

III*_*III 5 java android

Local.getCountry()的描述说:

返回此语言环境的国家/地区代码,该代码可以为空字符串,大写的ISO 3166 2字母代码或UN M.49 3位数代码。

我想知道何时ISO 3166 2-letter code返回,何时返回UN M.49 3-digit code

例:

Locale locale = new Locale("de", "AT");
Log.i(TAG, "country code: " + locale.getCountry()); //returns "AT" which is an ISO 3166 2-letter code
Run Code Online (Sandbox Code Playgroud)

Mei*_*wjn 2

返回类型取决于创建的 Locale 所在的国家/地区,因此取决于 Locale 的创建方式。IANA 指定国家/地区代码并支持 UN M.49 和 ISO 3166 2。

Locale.getCountry() 返回IANA List指定的代码,该代码可以是ISO 或 UN。搜索“类型:地区”:

示例 UN M.49:

Type: region
Subtag: 053
Description: Australia and New Zealand
Added: 2005-10-16
%%
Run Code Online (Sandbox Code Playgroud)

ISO 3166 2 示例:

Type: region
Subtag: VA
Description: Holy See (Vatican City State)
Added: 2005-10-16
%%
Run Code Online (Sandbox Code Playgroud)

来源: https: //developer.android.com/reference/java/util/Locale