Java 如果您有ISO国家代码'US','FR',如何获得语言环境代码('Locale.US','Locale.FRANCE')?
如果您有国家代码Java 如果您有ISO国家代码'US','FR',如何获得语言环境代码('Locale.US','Locale.FRANCE')?,java,internationalization,locale,currency,Java,Internationalization,Locale,Currency,如果您有国家代码US,FR(ISO-3166-1 alpha-2国家代码),您如何获得地区代码(Locale.US,Locale.FRANCE)来执行以下操作: System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34)); System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34)); $12.
US
,FR
(ISO-3166-1 alpha-2国家代码),您如何获得地区代码(Locale.US
,Locale.FRANCE
)来执行以下操作:
System.out.println(DecimalFormat.getCurrencyInstance(Locale.US).format(12.34));
System.out.println(DecimalFormat.getCurrencyInstance(Locale.FRANCE).format(12.34));
$12.34
12,34 €
您可以创建区域设置
new Locale("en", "US")
new Locale("fr", "FR")
或
遍历
Locale.getAvailableLocales()
,直到找到您的区域设置,然后使用该实例。在Java7中有Locale.Builder
,但在此之前没有简单的方法。但是,您可以创建实用程序方法:
Locale.getAvailableLocales()
locale.getCountryCode().equals(countryCodeParam)
并返回它语言环境最重要的是由ISO-639语言代码指定,也可能是ISO-3166国家代码和变体。
Locale
类的构造函数只接受语言代码、国家代码或变体
如果你只有国家代码,你首先需要一个地图将其转换为语言代码——但这并不一定会产生唯一的结果,许多国家使用不止一种官方语言。你不能,因为语言环境是用来保存一种语言,而不是一个国家。它可以为一个特定的国家和这个国家的特定变体保存一种语言,但它首先是一种语言。一种语言和一个国家之间没有一对一的关系。大多数语言在不同的国家使用,许多国家有几种语言
如果您有一种语言的国家代码,您可以使用
newlocale(code)
。但是有了国家代码,您所能做的就是调用GetAvailableCales
,循环搜索结果,找到一个包含您的国家代码的。但是可能有几种语言。Locale.Builder可以在这里帮助从国家代码获取默认语言吗?