2010-03-02 91 views
2

以下代码输出“日本标准时间”。如何获取TimeZone.getDisplayName(locale)值以返回非英文文本?

我期待它输出一些与汉字一起的“日本标准时”的佳句。这似乎并不重要什么时区ID或区域设置我传递给getDisplayName() - 结果文本总是英语。我如何获得本地化的价值?

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

回答

3

如果您使用预定义的JAPAN区域设置它的工作原理:

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

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

Locale.JAPAN被定义为new Locale("ja_JP_", "ja", "JP"),所以在构造函数参数中显然有一些微妙之处。

+0

ISO语言和国家代码并不总是一致的。虽然“JP”是日本的国家代码(国家代码通常用大写字母),但日语的语言代码是“ja”(语言代码通常以小写形式)。 – jarnbjo 2010-03-02 00:29:44

+0

现在不是配置IDE控制台输出UTF-8的时候了吗? ;) – BalusC 2010-03-02 00:45:59

+0

谢谢你们两位。 Skaffman向我提出了当地的问题。如果我创建一个新的语言环境,比如'new Locale(“ja”,“JP”);'它也可以。 – 2010-03-02 00:48:13