Има ли библиотека за показване на часова зона в selectOneMenu

В момента в моето приложение използвам следния фрагмент, за да създам списък с часови зони за показване в selectOneMenu:

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

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

Хубавото, което имам нужда и получавам от този списък, е идентификаторът на часовата зона Olson, който мога лесно да използвам с библиотеката Joda-Time. Списъкът обаче е много дълъг, който се състои от всички налични часови зони в Java. Накратко, не е удобен за ползване.

въведете описание на изображението тук

В началото бих искал да покажа списък с GMT часови зони, но нямам представа, например, какъв е съответният идентификатор на часовата зона Olson за GMT+3. В резултат на това не можах да измисля списък от selectItems за selectOneMenu. Това е причината, поради която трябваше да използвам TimeZone.getAvailableIDs();.

Ще бъда много благодарен, ако можете да предложите библиотека, която може да ми помогне да попълня списъка с часови зони с GMT етикети и стойности за ID на часовата зона Olson.


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