2012-03-07 25 views
0

我嘗試使用下面的代碼從本地日曆中的時區獲得時區,但我得到的時區擁有,而不是僅僅「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())); 

這裏的時區亞洲/加爾各答亞洲/加爾各答我需要它打印IST

回答

0

黑莓Java不會給你時區短碼,至少不可靠(只有知道「GMT」代碼)。有關如何編碼「亞洲/加爾各答」和「IST」等字符串之間的映射的信息,請參閱see my answer here。 (我的方法mapTimeZoneCodes()在這個例子)

我爲建立映射一個模板方法,並鏈接到this article on Desktop Java,這似乎有足夠的時間區碼的一個非常完整列表,以及如何將代碼映射到長的Java時區字符串。

會很無聊的工作字符串複製到我的模板,但一旦你擁有了它,你就可以輕鬆地查找基於長名稱的短代碼:

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