Java Locale.getDefault()不能返回en以外的值

时间:2017-02-07 10:59:17

标签: java spring spring-boot

我在Java中遇到一些问题,我想从窗口计算机获取系统区域设置国家/地区,所以我编写如下代码:

 Locale x = Locale.getDefault();
 String output = x.getCountry();

如果我将我的系统语言设置为英语(新加坡),我将获得结果为en-SG,如果我将我的系统语言设置为英语(加拿大),它也会将结果返回给我en-CA,但如果我换成某种不是英语的语言,它会把我作为所有选项的en-GB返回,为什么会这样呢?

除此之外,还有其他方法可以使用java获取当前的国家/地区信息吗?

1 个答案:

答案 0 :(得分:0)

Locale.getDefault()应该从操作系统中抽象出来。这就是目的。

我不认为这是Java的问题。我只是试图改变我的语言而且有效。

我的设置是:

  1. Windows 10家庭版64位
  2. Java 1.8.0_45
  3. de_DE to en_GB
  4. 我必须下载en_GB的语言包。

    我必须注销并登录才能激活其他语言。