代码之家  ›  专栏  ›  技术社区  ›  Erik Hermansen

如何获取timezone.getdisplayname(locale)值以返回非英语文本?

  •  2
  • Erik Hermansen  · 技术社区  · 15 年前

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

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

    我希望它能输出一些类似于汉字的东西。我传递给getdisplayname()的时区id或区域设置似乎并不重要——生成的文本总是英文的。如何获取本地化值?

    我使用的是Sun JavaSDK/JRE版本1.60Y18。我也试过运行TZUpdater实用程序,但结果没有变化。

    1 回复  |  直到 15 年前
        1
  •  3
  •   skaffman    15 年前

    如果使用预定义的 JAPAN 场所:

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

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

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