Pas*_*cal 20 java locale currency internationalization
如果有国家代码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 €
Run Code Online (Sandbox Code Playgroud)
JB *_*zet 16
您不能,因为Locale用于保存语言,而不是国家/地区.它可以为特定国家/地区以及该国家/地区的特定变体保留一种语言,但它首先是一种语言.语言和国家之间没有一对一的关系.大多数语言在不同的国家使用,许多国家都有多种语言.
如果您有语言的国家/地区代码,则可以使用new Locale(code).但是使用国家/地区代码,您可以做的就是调用getAvailableLocales,循环搜索结果,找到包含国家/地区代码的结果.但可能有几个.
您可以创建区域设置,
new Locale("en", "US")
new Locale("fr", "FR")
Run Code Online (Sandbox Code Playgroud)
或者
迭代Locale.getAvailableLocales()直到找到您的区域设置,然后使用该实例。
在 Java7 中有Locale.Builder,但在此之前没有简单的方法。但是,您可以创建一个实用程序方法:
Locale.getAvailableLocales()locale.getCountryCode().equals(countryCodeParam)并返回| 归档时间: |
|
| 查看次数: |
31331 次 |
| 最近记录: |