如何获取TimeZone.getDisplayName(locale)值以返回非英文文本?

时间:2010-03-02 00:07:34

标签: java internationalization

以下代码输出“日本标准时间”。

TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
Locale locale = new Locale("ja_JP");
System.out.println(tz.getDisplayName(locale));

我希望它能够按照“日本标准时”的方式输出汉字。我传递给getDisplayName()的时区ID或语言环境似乎并不重要 - 生成的文本始终为英语。如何获取本地化值?

我正在使用Sun Java SDK / JRE版本1.6.0_18。我也试过运行tzupdater实用程序,但结果没有变化。

1 个答案:

答案 0 :(得分:3)

如果您使用预定义的JAPAN区域设置,则可以使用

System.out.println(tz.getDisplayName(Locale.JAPAN));

至少,它在我的控制台上打印了一堆问号,而不是“日本标准时间”,这必须是一个好兆头。

Locale.JAPAN定义为new Locale("ja_JP_", "ja", "JP"),因此构造函数参数中显然存在一些细微之处。