首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有任何方法可以从windows属性,而不是从JVM获取国家ISO-2代码?

是否有任何方法可以从windows属性,而不是从JVM获取国家ISO-2代码?
EN

Stack Overflow用户
提问于 2020-10-07 11:47:49
回答 1查看 113关注 0票数 0

基本上,正如标题所述,我已经尝试过:

代码语言:javascript
复制
Locale currentLocale = Locale.getDefault();
System.out.println(currentLocale.getDisplayLanguage());
System.out.println(currentLocale.getDisplayCountry());

System.out.println(currentLocale.getLanguage());
System.out.println(currentLocale.getCountry());

System.out.println(System.getProperty("user.country"));
System.out.println(System.getProperty("user.language"));

当我在寡妇的环境中设置了完全不同的东西时,这一切都给了我美国或英语。请给我任何建议。因此,我希望得到“国家代码”,例如,如果我在系统中设置了波兰,我希望"PL“,但我得到”美国“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 16:15:12

默认的Java区域设置与系统区域设置不一样,因为它可以被重写

具有Locale.setDefault().、user.languageuser.variant系统属性的

  • ;通过调用
  • 调用

有非标准的、无文档的API来获取操作系统提供的地区信息。它是在Windows或更高版本上实现的。试试下面的片段。

代码语言:javascript
复制
import sun.util.locale.provider.HostLocaleProviderAdapter;

...

    static String getHostCountry() {
        for (Locale locale : new HostLocaleProviderAdapter().getAvailableLocales()) {
            if (!locale.getCountry().isEmpty()) {
                return locale.getCountry();
            }
        }
        return null;
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64243363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档