从国家/地区代码获取国家名称

时间:2013-01-11 10:11:52

标签: android locale

我需要从国家/地区代码中获取完整的国家/地区名称。 例如,对于荷兰,我需要国家/地区代码the Netherlands中的NL

我以为我可以用Locale代替:

Locale loc = new Locale("NL");
loc.getCountry();

loc.getCountry();为空。

对于如何做到这一点,请问? 提前谢谢!

5 个答案:

答案 0 :(得分:78)

试试这个

Locale loc = new Locale("","NL");
loc.getDisplayCountry();

希望这会有所帮助。

答案 1 :(得分:23)

这应该有效:

Locale l = new Locale("", "NL");
String country = l.getDisplayCountry();

Locale的第一个参数是语言,在您的情况下无用。

答案 2 :(得分:5)

我想在上述答案中添加更多信息。

如果要为结果指定语言,则可以使用Locale("your language")作为getDisplayCountry()的参数。

例如:

(new Locale("","NL")).getDisplayCountry(new Locale("ZH"));

“ ZH”是中文的语言代码。您将获得“荷兰”,这是荷兰的中文名称。

您可以使用Locale("languages", "ISO-3166 code")指定您的语言变体。

例如:

(new Locale("","NL")).getDisplayCountry(new Locale("ZH", "TW"));

Locale("ZH", "TW")是指中文在台湾的变体(繁体中文)。它与中国大陆版本有很多差异。

您将获得“荷兰”,这是荷兰的繁体中文名称。

(即使您不懂中文,我认为两个名称中的第二个汉字也很明显是不同的。)

如果您未指定语言,则将以设备显示语言获得荷兰的名称,可以在电话设置中进行更改。代码是:

(new Locale("","NL")).getDisplayCountry();

您可以获得Android in this question支持的所有语言和变体的列表:

如果您使用的是Kotlin:

Locale("", "NL").getDisplayCountry(Locale("ZH"))
Locale("", "NL").getDisplayCountry(Locale("ZH", "TW"))
Locale("", "NL").displayCountry

答案 3 :(得分:0)

尝试使用其他构造函数

Locale loc = new Locale("NL", "The Netherlands");

Locale The Netherlands

似乎没有预定义的区域设置

答案 4 :(得分:-1)

获取完整解决方案TelephonyManager(来自this solution):

statelessSession
    .CreateSQLQuery("TRUNCATE TABLE " + SysCfg.ConfigurationManager.AppSettings["tabName"])
    .ExecuteUpdate();