Есть ли библиотека для отображения часового пояса в selectOneMenu

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

@Named
@ApplicationScoped
public class MrBean {
    private String[] timezoneIDs;

    @PostConstruct
    public void init() {
        this.timezoneIDs = TimeZone.getAvailableIDs();
    }
}

Хорошая вещь, которую мне нужно и получить из этого списка, — это идентификатор часового пояса Olson, который я могу легко использовать с библиотекой Joda-Time. Однако список очень длинный и состоит из всех доступных часовых поясов в Java. Короче говоря, это не удобно для пользователя.

введите здесь описание изображения

Вначале я хотел бы отобразить список часовых поясов GMT, но я понятия не имею, например, что такое соответствующий идентификатор часового пояса Олсона для GMT+3. Как следствие, я не мог составить список selectItems для selectOneMenu. Вот почему мне пришлось использовать TimeZone.getAvailableIDs();.

Я был бы очень признателен, если бы вы могли предложить библиотеку, которая поможет мне заполнить список часовых поясов метками GMT и значениями идентификатора часового пояса Олсона.


person Mr.J4mes    schedule 30.03.2013    source источник
comment
Разве вы не можете вместо этого просто использовать DateTimeZone#getAvailableIDs() JodaTime? Или, может быть, отфильтровать строки, соответствующие шаблону \w/\w?   -  person BalusC    schedule 30.03.2013
comment
@BalusC: Тем не менее, список будет состоять из слишком большого количества зон. Я хотел бы иметь что-то вроде настройки часового пояса Microsoft, где есть гораздо более короткий список GMT+X.XX. Я думаю, что так было бы гораздо более интуитивно понятно :(, не так ли?   -  person Mr.J4mes    schedule 30.03.2013
comment
@BalusC: К тому же, например, в Китае столько городов. Пользователям (если не техническим специалистам) было бы гораздо проще искать свой часовой пояс GMT, чем выяснять, например, что Asia/Shanghai — это идентификатор их часового пояса.   -  person Mr.J4mes    schedule 30.03.2013


Ответы (1)


Вам может быть интересна эта статья.

Короче говоря, лучший выбор часового пояса — вообще никакой. Но во-вторых, это сборщики на основе карты.

Мой любимый инструмент выбора часового пояса для JavaScript — этот.

Я не знаю, есть ли что-то подобное для Java или нет. Быстрый поиск ничего не дал. Если кто-нибудь знает о хорошем элементе управления/виджете выбора часового пояса на основе карты для Java, опубликуйте ссылку. Спасибо.

person Matt Johnson-Pint    schedule 30.03.2013
comment
:) Выбор часового пояса на карте выглядит круто. Тем не менее, я на 999% уверен, что мой босс отклонит это, потому что это не так просто для обычного пользователя: P... Кроме того, ранее в моем приложении я автоматически определял часовой пояс пользователя с помощью JavaScript. Мой босс попросил меня составить список на случай, если некоторые пользователи захотят выбирать вручную. Следовательно, этот вопрос здесь: P - person Mr.J4mes; 31.03.2013
comment
Это точно. Определите часовой пояс, когда сможете (используя что-то вроде jsTimeZoneDetect), но разрешите пользователю изменить его вручную, если желательно - потому что обнаружение несовершенно. Все, что я хочу сказать, это то, что мое исследование показало, что средства выбора на основе карты легче для пользователей, чем средства выбора раскрывающегося списка. - person Matt Johnson-Pint; 31.03.2013