Применить пользовательские настройки Locale ОС к Java

Я только что изменил настройки локали в Windows, чтобы десятичный символ был точкой, а не запятой. (Я не менял NL на US или что-то еще (поскольку мне нужны форматы даты в стиле NL), я просто установил некоторые пользовательские настройки формата.)

Это изменение не отражается при запуске моей Java-программы.

    System.out.println(new Scanner("4,0 ").nextDouble());

выходы

4.0

вместо того, чтобы делать исключение, а сейчас

    System.out.println(new Scanner("4.0 ").nextDouble());

дает исключение.

Как мне сообщить Java, что пользовательские настройки Locale обновлены? Возможно ли, чтобы Java знала эти пользовательские настройки?


person Tim Kuipers    schedule 14.11.2013    source источник
comment
Насколько я вижу, эталонная реализация не учитывает такую ​​настройку. Единственным решением будет реализация нового DecimalFormatSymbolsProvider с помощью собственного Windows API для получения символов.   -  person Holger    schedule 14.11.2013


Ответы (1)


person    schedule
comment
Это вызовет ту же проблему с датами вместо чисел. - person Tim Kuipers; 14.11.2013