как получить часовой пояс из календаря - PullRequest
0 голосов
/ 07 марта 2012

Я пытаюсь получить часовой пояс из собственного календаря, используя следующий код, но я получаю часовой пояс с Азией / Калькуттой вместо просто 'IST'

Calendar calendarLocal = Calendar.getInstance();
                // fetches time zone
                TimeZone timeZone = calendarLocal.getTimeZone();
                System.out.println("Time Zone getAvailableIDs() --->"+timeZone.getAvailableIDs());
               String[] x=timeZone.getAvailableIDs();
               for(int i=0;i<x.length;i++){
                    System.out.println("Time Zone IDs-->"+x[i]);
                 } 
                  System.out.println("Time Zone ID--->"+timeZone.getID());
                System.out.println(" Calender Default-------->>>"+timeZone.getDefault());
                System.out.println("Time Zone --->"+timeZone.getTimeZone(timeZone.getID()));

Здесь TimeZone - это Азия / Калькутта, мне нужноэто напечатать IST

1 Ответ

0 голосов
/ 26 мая 2012

BlackBerry Java не дает вам короткие коды часового пояса, по крайней мере, не надежно (он только гарантирует, что знает код «GMT»). Вы можете посмотреть мой ответ здесь для получения информации о том, как кодировать сопоставление между строками, такими как "Азия / Калькутта" и "IST". (мой метод mapTimeZoneCodes() в этом примере)

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

Копировать строки в мой шаблон будет скучно, но как только он у вас появится, вы сможете легко найти короткий код по длинному имени:

String longName = timeZone.toString();
String shortCode = (String)_timeZones.get(longName);
...