Java NumberFormat швы, которые будут закреплены / навсегда заменены на английский формат sh - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь разобрать немецкое число из строки. Вот минимальный пример:

String stringValue = "1,00";
double value = NumberFormat.getInstance(Locale.GERMANY).parse(stringValue).doubleValue();
// value = 100.0 (locale machine from cmd, server jdk)
// value = 1.0 (locale machine from cmd, locale jdk)

Каким-то образом формат навсегда застрял на английском форматировщике. Я отладил строку и взглянул на symbols.decimalSeperator, и это все еще точка.

Я должен признать, что я могу воспроизвести это поведение, только если я запускаю приложение с JDK с сервера в нашем Компания. Запустив его с моей локалью JDK, все работает нормально и, как ожидалось. Так что, возможно, локаль Locale на сервере английская, но как это изменить мой жесткий код Locale.GERMANY?

Мы используем Java 8.

...