调试我的应用程序时,如果发现默认情况下DecimalFormat
和DateFormat
设置为使用nl_NL
,但系统区域设置似乎为en_US
。
我通过评估找到了第一个:
new DecimalFormat().symbols.locale
new SimpleDateFormat().locale
第二个:
Locale.getDefault()
System.getProperty("user.country")
System.getProperty("user.language")
那里发生了什么?
默认情况下,如何设置这些格式化程序以使用某个区域设置? (我正在编写单元测试,并希望在不触及应用程序代码的情况下设置特定的语言环境)
答案 0 :(得分:1)
从Java 7开始,the default locale comes in two categories:" DISPLAY"和"格式"。
两者最初都是根据环境设定的。可以通过致电Locale.getDefault(Category)
找到它们。
除了问题中提到的系统属性:
"user.country"
"user.language"
运行JVM时也可以出现以下内容:
"user.country.format"
"user.language.format"
"user.country.display"
"user.language.display"
通过致电Locale.setDefault(Locale)
the default locale will be set for all categories来回答我的上一个问题。