Неправильный язык для Португалии (Бразилия) - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь получить системный языковой стандарт для Португалии (Бразилия), но он задает десятичный разделитель как . вместо , Может кто-нибудь помочь с этим?Я использую Java 8.

Ниже приведен код, который я использую:

public static void main(String[] args) 
{
    final Locale locale = new Locale(System.getProperty("user.country.format"));

    final NumberFormat nf = NumberFormat.getNumberInstance(locale);

    DecimalFormatSymbols decSymbols = new DecimalFormatSymbols(locale);
    System.out.println("Decimal Symbol"+ decSymbols.getDecimalSeparator() + "");
}

Получение десятичного разделителя как . вместо ,.

1 Ответ

0 голосов
/ 23 мая 2018

Мне удалось получить ожидаемый десятичный разделитель , с использованием pt локали (Португалия):

final Locale locale = new Locale("pt");
final NumberFormat nf = NumberFormat.getNumberInstance(locale);
DecimalFormatSymbols decSymbols = new DecimalFormatSymbols(locale);
System.out.println("Decimal Symbol"+ decSymbols.getDecimalSeparator() + "");

Я не увидел ни одной локали br, возвращенной после вызова DateFormat.getAvailableLocales(), так что либо он вообще не существует (по крайней мере, в моей JRE), либо он использует десятичную точку в качестве десятичного разделителя.Обратите внимание, что языковой стандарт pt_BR - это то, что, я думаю, вам следует использовать, но это предполагает, что ваш JRE поддерживает его.Если нет, то, возможно, ваш код будет использовать локаль по умолчанию.

...