Работает, если вы используете предопределенную JAPAN
локаль:
System.out.println(tz.getDisplayName(Locale.JAPAN));
По крайней мере, на моей консоли напечатано несколько знаков вопроса, а не «Стандартное время Японии», что должно быть хорошим знаком.
Locale.JAPAN
определяется как new Locale("ja_JP_", "ja", "JP")
, поэтому здесь явно есть некоторая тонкость в аргументах конструктора.