Можно ли перечислить доступные часовые пояса по языку в Java?
Мне нужно создать список часовых поясов для отображения для пользователя. Мы хотели бы сократить список вниз в зависимости от пользователя Locale.
Если у пользователя есть язык "en_US", он, вероятно, не хочет видеть "Азия/Ашхабад" в списке.
Это выполнимо?
Ответы
Ответ 1
Нет, вы не можете. Вы можете использовать TimeZone.getAvailableIDs(int rawoffset), чтобы сузить результаты, но тогда вам нужно сохранить карту Locale- > raw offsets.
Кроме того, что произойдет, если ваш пользователь - американец, расположенный в Индии? Разве вы не хотите отображать для него часовой пояс Banglor?
Ответ 2
http://www.exampledepot.com/egs/java.util/GetAllZones.html
Ответ 3
Конечно, это выполнимо... но вам придется написать код.
Вам нужно будет выбрать свой часовой пояс с кодом, который фильтрует список часовых поясов. Вы заполняете этот фильтр с помощью карты локалей для набора часовых поясов для языкового стандарта.
Однако, как заметил Дэвид, вы столкнетесь с проблемой людей, чья локаль не является их местом работы или часовым поясом, поэтому будьте готовы разобраться с этим в двухуровневом подходе или выбрать "виртуальную локаль" откуда-то.
Ответ 4
Вы можете найти ЭТО, полезный при реализации того, что вы хотите сделать.