Java Locale.getDefault()不返回区域设置小数分隔符

时间:2016-09-13 18:51:28

标签: java locale

我正在尝试根据区域设置中的SO配置小数分隔符使用正确的小数分隔符导出到Excel工作表值。 我尝试使用:

private static Locale tp = Locale.getDefault();
DecimalFormatSymbols dfs = new DecimalFormatSymbols(tp);
String sep = Character.toString(dfs.getDecimalSeparator());

但即使我将区域设置从“逗号”更改为“点”,dfs.getDecimalSeparator()也始终返回“逗号”。

据我所知,Locale.getDefault()返回最初由Java虚拟机(JVM)加载时确定的区域设置。也就是说,JVM从主机环境确定默认语言环境。主机环境的区域设置由主机操作系统和在该系统上建立的用户首选项确定。

但是,假设我不想获取Locale的小数点分隔符,但是我希望得到区域设置中的配置,即使它不是语言环境,我该怎么做?

C:\Users\admim>java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

0 个答案:

没有答案