Можно ли перечислить доступные часовые пояса по языку в Java?

Мне нужно создать список часовых поясов для отображения для пользователя. Мы хотели бы сократить список вниз в зависимости от пользователя Locale.

Если у пользователя есть язык "en_US", он, вероятно, не хочет видеть "Азия/Ашхабад" в списке.

Это выполнимо?

Ответ 1

Нет, вы не можете. Вы можете использовать TimeZone.getAvailableIDs(int rawoffset), чтобы сузить результаты, но тогда вам нужно сохранить карту Locale- > raw offsets.

Кроме того, что произойдет, если ваш пользователь - американец, расположенный в Индии? Разве вы не хотите отображать для него часовой пояс Banglor?

Ответ 3

Конечно, это выполнимо... но вам придется написать код.

Вам нужно будет выбрать свой часовой пояс с кодом, который фильтрует список часовых поясов. Вы заполняете этот фильтр с помощью карты локалей для набора часовых поясов для языкового стандарта.

Однако, как заметил Дэвид, вы столкнетесь с проблемой людей, чья локаль не является их местом работы или часовым поясом, поэтому будьте готовы разобраться с этим в двухуровневом подходе или выбрать "виртуальную локаль" откуда-то.

Ответ 4

Вы можете найти ЭТО, полезный при реализации того, что вы хотите сделать.