【发布时间】:2014-08-28 07:18:53
【问题描述】:
这个问题看起来非常简单,但我很尴尬地说我无法弄清楚它是如何工作的。
我希望我的 Java SE 应用程序从操作系统中配置的任何内容中获取其数字格式。就像该操作系统上的任何其他应用程序一样。
我的目标主要是 Windows。在 Windows 中考虑这个例子:
我用这个小例子来检查结果:
public class MyMain {
public static void main(String[] args) {
DecimalFormat decFormat = new DecimalFormat();
DecimalFormatSymbols decSymbols = decFormat.getDecimalFormatSymbols();
System.out.println("Decimal separator is : " + decSymbols.getDecimalSeparator());
System.out.println("Thousands separator is : " + decSymbols.getGroupingSeparator());
}
}
上面的截图示例打印出我的 Java 小示例:
Decimal separator is : ,
Thousands separator is : .
我本来希望它说小数分隔符是一个点和千位 分隔符是一个逗号 - 因为这是我告诉 Windows 的,也是所有其他 Windows 应用程序所采用的。
我的印象是,在 Windows 中,这些设置对新进程生效。我已经尝试重新启动我的 IDE。没有帮助。
我做错了什么?
【问题讨论】:
-
看here
-
如果需要,您似乎需要从注册表中读取此信息。
-
@Jarrod 他们似乎没有询问基于
Locale的格式。 -
方法是使用
Locale否则它将是特定于操作系统的。 -
请原谅我的怀疑。我只是希望我的 Java 应用程序能够适应用户对他如何告诉他的操作系统他想要显示数字的偏好(同样可能是他对显示货币、日期或其他内容的偏好)。我需要在这里做一些特定于操作系统的破解,这根本不可能。这就是我使用 Java 的目的。
标签: java