/ / Se você tem o código de país ISO `US`,` FR`, como você obtém o código Locale (`Locale.US`,` Locale.FRANCE`)? - java, internacionalização, localidade, moeda

Se você tem o código de país ISO `US`,` FR`, como você obtém o código Locale (`Locale.US`,` Locale.FRANCE`)? - java, internacionalização, localidade, moeda

Se você tem o código do país US, FR (ISO-3166-1 alpha-2 country code), como você obtém o código de localidade (Locale.US, Locale.FRANCE) para fazer algo assim:

System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34));
System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34));

$12.34
12,34 €

Respostas:

14 para resposta № 1

Você não pode, porque um Locale é usado para manter umlíngua, não um país. Pode conter uma língua para um país específico e para uma variante específica neste país, mas é "uma linguagem em primeiro lugar. E não existe uma relação de um para um entre um idioma e um país. A maioria dos idiomas é falada em vários países e muitos países têm várias línguas.

Se você tivesse o código do país para um idioma, você poderia usar new Locale(code). Mas com um código de país, tudo o que você pode fazer é ligar getAvailableLocales, percorra os resultados e encontre um que tenha o código do seu país. Mas pode haver vários.


2 para resposta № 2

Você pode criar o local,

new Locale("en", "US")
new Locale("fr", "FR")

ou

iterar por Locale.getAvailableLocales() até encontrar sua localidade e, em seguida, usar essa instância.


2 para resposta № 3

Um local é especificado mais importante pelo código de idioma ISO-639, possível também um código de país ISO-3166 e uma variante. o Locale A classe tem construtores que usam apenas um código de idioma ou, adicionalmente, um código de país ou, adicionalmente, uma variante.

Se você tiver apenas o código do país, primeiro precisará de um mapa que o converta em um código de idioma, mas isso não produz necessariamente um resultado exclusivo, pois muitos países usam mais de um idioma oficial.


2 para resposta № 4

No Java7 existe o Locale.Builder, mas antes disso não é um caminho fácil. Você pode, no entanto, criar um método de utilidade:

  1. laço Locale.getAvailableLocales()
  2. para cada cheque se locale.getCountryCode().equals(countryCodeParam) e devolva