0

我注意到来自 java.util.logging 的 Level 类的本地化消息在 Java7 上不起作用。看起来加载有RessourceBundle问题sun.util.logging.resources.logging

让我们考虑以下代码段

Locale.setDefault(Locale.GERMANY);
String msg = Level.SEVERE.getLocalizedName();
System.err.println(msg);

在 java 6 上打印

SCHWERWIEGEND

在 java 7 上打印

SEVERE

我读了一篇文章,解释说 Locale 类在 jdk7 中重新实现。不过,这似乎很奇怪。我还尝试了 Java 7 设置

Locale.setDefault(Category.DISPLAY, Locale.GERMANY);
then 
Locale.setDefault(Category.FORMAT, Locale.GERMANY);
finally 
System.setProperty("sun.locale.formatasdefault", "true");

但似乎都不起作用。

这是 JVM 中的错误还是我错过了什么?

4

1 回答 1

0

这可能与JDK-8028233有关。您可以通过“ java.util.logging.SimpleFormatter .format”系统属性或 LogManager 属性指定格式字符串来更改日期格式。

于 2013-11-15T21:53:07.190 回答