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