Java 检查区域设置-容易吗?

Java 检查区域设置-容易吗?,java,internationalization,Java,Internationalization,如何检查我的JVM支持多少地区?有什么方法可以这样做吗? 谢谢请参见: Java平台支持哪些地区?您可以创建您想要的任何区域设置。但是,运行时环境可能不完全支持您创建的区域设置对象 如果你想知道你可以创建什么语言环境对象,答案很简单:你可以创建任何你想要的语言环境。构造函数不会抱怨非ISO参数。然而,对这个问题更有用的重申是:类库为哪些地区提供了更广泛的信息?库可以为哪些地区提供排序规则、时间、日期、数字和货币信息?此外,您可能会询问运行时环境支持哪些脚本或编写系统 您可以使用Locale.ge

如何检查我的JVM支持多少地区?有什么方法可以这样做吗?
谢谢

请参见:

Java平台支持哪些地区?您可以创建您想要的任何区域设置。但是,运行时环境可能不完全支持您创建的区域设置对象

如果你想知道你可以创建什么语言环境对象,答案很简单:你可以创建任何你想要的语言环境。构造函数不会抱怨非ISO参数。然而,对这个问题更有用的重申是:类库为哪些地区提供了更广泛的信息?库可以为哪些地区提供排序规则、时间、日期、数字和货币信息?此外,您可能会询问运行时环境支持哪些脚本或编写系统


您可以使用
Locale.getAvailableLocales()检查区域设置方法

代码 例如。

天啊,我本来要这么说的!我想我必须接受投票&添加代码和屏幕截图@安德鲁:谢谢你的额外效果。请注意,尽管你可以得到“可用”地区的列表,正如洛根所说,其中一些地区只提供部分支持,例如一些翻译缺失。
import java.util.Arrays;
import java.util.Locale;

import javax.swing.table.*;
import javax.swing.*;

class ShowLocales {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                Locale[] locales = Locale.getAvailableLocales();
                LocaleTableModel tableModel = new LocaleTableModel(locales);
                JTable localeTable = new JTable(tableModel);
                localeTable.setAutoCreateRowSorter(true);
                JOptionPane.showMessageDialog(
                    null, 
                    new JScrollPane(localeTable));
            }
        });
    }
}

class LocaleTableModel extends AbstractTableModel {

    private Locale[] locales;

    LocaleTableModel(Locale[] locales) {
        this.locales = locales;
    }

    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return "Code";
            case 1:
                return "Language";
            case 2:
                return "Country";
            case 3:
                return "Variant";
        }
        return "";
    }

    public Object getValueAt(int row, int column) {
        switch (column) {
            case 0:
                return locales[row].toString();
            case 1:
                return locales[row].getDisplayLanguage();
            case 2:
                return locales[row].getDisplayCountry();
            case 3:
                return locales[row].getDisplayVariant();
        }
        return null;
    }

    public int getRowCount() {
        return locales.length;
    }

    public int getColumnCount() {
        return 4;
    }
}