如何从日历中获取时区

时间:2012-03-07 11:34:38

标签: blackberry calendar blackberry-jde

我正在尝试使用以下代码从本机日历中获取时区,但我得到的时区有亚洲/加尔各答而不仅仅是'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 :(得分:0)

BlackBerry Java不会为您提供时区短代码,至少不可靠(只有gaurantees才能了解“GMT”代码)。您可以see my answer here获取有关如何编写“Asia / Calcutta”和“IST”等字符串之间映射的信息。 (我的方法mapTimeZoneCodes()在该示例中)

我提供了一个用于设置映射的模板方法,以及一个指向this article on Desktop Java的链接,它似乎有一个非常完整的时区代码列表,以及如何将代码映射到长Java时区字符串

将字符串复制到我的模板中会很无聊,但是一旦你拥有它,你就可以根据长名称轻松查找短代码:

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