Мое приложение Android использует этот код, чтобы получить краткое название часового пояса, в котором находится телефон.
String shortDisplayName = Calendar.getInstance().getTimeZone().getDisplayName(false, TimeZone.SHORT);
Для моего пользователя в Страсбург, Франция , shortDisplayName
это "HNEC" (я еще точно не узнал, какая локаль находится в игре).Я пытаюсь точно определить, какое TimeZone имеет это короткое имя.Итак, я собрал некоторый код быстрого теста:
String[] ids = TimeZone.getAvailableIDs();
Locale[] locales = Locale.getAvailableLocales();
for (String id : ids) {
TimeZone timeZone = TimeZone.getTimeZone(id);
int rawOffset = timeZone.getRawOffset();
for (Locale locale : locales) {
String shortDisplayName = timeZone.getDisplayName(false, TimeZone.SHORT, locale);
if (shortDisplayName.equalsIgnoreCase("HNEC")) {
System.out.println(id + " | " + shortDisplayName + " | " + rawOffset);
}
}
}
Когда я запускаю этот код, строки не печатаются.То есть никакие часовые пояса, использующие какой-либо языковой стандарт, не преобразуются в короткое имя "HNEC"?Как я могу выяснить, у какого TimeZone есть короткое имя "HNEC"?