文档

Java™ 教程
隐藏目录
可用区域设置的标识
教程:国际化
课程:设置区域

识别可用区域

您可以创建一个具有任何有效语言和国家/地区代码组合的Locale,但这并不意味着您可以使用它。请记住,Locale对象只是一个标识符。您将Locale对象传递给其他对象,然后这些对象才会进行实际工作。我们称这些其他对象为与区域相关的对象,它们并不知道如何处理所有可能的Locale定义。

要找出一个与区域相关的类支持哪些类型的Locale定义,您可以调用getAvailableLocales方法。例如,要找出DateFormat类支持哪些Locale定义,可以编写如下的例程:

import java.util.*;
import java.text.*;

public class Available {
    static public void main(String[] args) {
        Locale list[] = DateFormat.getAvailableLocales();
        for (Locale aLocale : list) {
            System.out.println(aLocale.toString());
        }
    }
}

请注意,toString返回的String包含用下划线分隔的语言和国家/地区代码:

ar_EG
be_BY
bg_BG
ca_ES
cs_CZ
da_DK
de_DE
...

如果您想向最终用户显示Locale名称列表,您应该显示比toString返回的语言和国家/地区代码更容易理解的内容。相反,您可以调用Locale.getDisplayName方法,该方法检索Locale对象的本地化String。例如,当在前面的代码中用getDisplayName替换toString时,程序打印以下行:

阿拉伯语(埃及)
白俄罗斯语(白俄罗斯)
保加利亚语(保加利亚)
加泰罗尼亚语(西班牙)
捷克语(捷克共和国)
丹麦语(丹麦)
德语(德国)
...

您可能会看到不同的区域列表,这取决于Java平台实现。


上一页: BCP 47 扩展
下一页: 语言标签过滤和查找