Я записал приложение для Android, для которого нужно короткое название часового пояса, на которое в настоящее время располагается гарнитура.
Я использую следующий код:
String timeZone = Calendar.getInstance().getTimeZone().getDisplayName(false, TimeZone.SHORT);
При выполнении в Чикаго это возвращает "CST". В Нью-Йорке, "EST". В Страсбурге, Франция, это возвращает "HNEC" (Heure Normale de l'Europe Centrale на французском языке).
Часовой пояс в этом месте упомянут некоторыми как "Центрально-европейское время" (см. Часовые пояса Википедии Европы).
Я являюсь передающим timeZone
прочь к сторонней системе, которая очень настаивает на том, чтобы получать "CET" (не "HNEC"). Существует ли вызов API, на который я могу полагаться для возврата трехбуквенного (и, я думаю, "более современный"), короткое название часового пояса?
Когда мой код работает во все большем количестве местоположений, я предполагаю, что эта проблема собирается произойти в другом месте, также.
Я действительно надеюсь постараться не поддерживать своего рода карту трехбуквенных к коротким названиям часового пояса с четырьмя буквами.
Извините, но вы, вероятно, застряли с поддержкой сопоставления. Трехзначная версия на самом деле является более старой, а не более современной версией. Из classdocs:
Если бы это была моя проблема, я бы получил список, поддерживаемый моей сторонней системой, и сопоставил бы его.