【问题标题】:Apply custom Locale settings of OS to Java将操作系统的自定义区域设置应用到 Java
【发布时间】: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


【解决方案1】:
Locale.setDefault(Locale.ENGLISH);

【讨论】:

  • 这将导致与日期而不是数字相同的问题。
猜你喜欢
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多