Как получить значение TimeZone.getDisplayName (locale) для возврата неанглийского текста? - PullRequest
2 голосов
/ 02 марта 2010

Код ниже выводит «Стандартное время Японии».

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

Я ожидаю, что он выведет что-нибудь с Кандзи по линии "日本 標準 時". Кажется, не имеет значения, какой идентификатор часового пояса или локаль я передаю getDisplayName () - результирующий текст всегда английский. Как я могу получить локализованные значения?

Я использую Sun Java SDK / JRE версии 1.6.0_18. Я также попытался запустить утилиту tzupdater, но результаты не изменились.

1 Ответ

3 голосов
/ 02 марта 2010

Работает, если вы используете предопределенную JAPAN локаль:

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

По крайней мере, на моей консоли напечатано несколько знаков вопроса, а не «Стандартное время Японии», что должно быть хорошим знаком.

Locale.JAPAN определяется как new Locale("ja_JP_", "ja", "JP"), поэтому здесь явно есть некоторая тонкость в аргументах конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...