2010-03-02 96 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