【发布时间】:2013-11-14 12:50:30
【问题描述】:
我刚刚更改了 Windows 中的区域设置,因此十进制符号是点而不是逗号。 (我没有将 NL 更改为 US 或任何东西(因为我想要 NL 样式的日期格式),我只是设置了一些自定义格式设置。)
运行我的 Java 程序时不会反映此更改。
System.out.println(new Scanner("4,0 ").nextDouble());
输出
4.0
而不是给出异常,而现在
System.out.println(new Scanner("4.0 ").nextDouble());
给出异常。
如何让 Java 知道自定义区域设置已更新? Java 甚至有可能知道这些自定义设置吗?
【问题讨论】:
-
据我所知,参考实现没有考虑到这种定制。唯一的解决方案是使用本地 Windows API 实现一个新的DecimalFormatSymbolsProvider 来获取符号。
标签: java windows windows-7 locale decimal-point