|
|
1
1
你是对的。当您使用“MessageFormat(”{0,number,integer}“)”时,格式化程序在初始化时使用默认区域设置(en_US),并且数字在默认区域设置中标记为使用integer格式(en_US),因为下面的代码是在初始化时间执行的。
由于您是在之后设置区域设置的,因此对分配给数字的格式模式没有影响。如果您想在数字格式中使用所需的语言环境,请在初始化时使用语言环境参数,例如:
|
|
|
2
0
在我看来,这是一个Java错误(接口错误)或文档问题。您应该在Oracle打开一个新问题来纠正这一问题。 正如Yogendra Singh所说,格式化程序(DecimalFormat)的实例是在MessageFormat构造函数时创建的。
调用MessageFormat.setLocale时,它不会更改其内部格式化程序的区域设置。 至少应该更改文档以反映此问题。 这是我的java版本: java版本“1.7.0_07” Java(TM)SE运行时环境(内部版本1.7.0_07-b11) |