/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package time.zone;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
/**
*
* @author Pritom Kumar Mondal
*/
public class TimeZoneList {
public static void main(String[] args) {
String supportedPattern = "^(Africa|America|Asia|Atlantic|Australia|"
+ "Europe|Indian|Pacific)/.*";
String[] timeZoneIdList = TimeZone.getAvailableIDs();
List<TimeZone> timeZoneList = new ArrayList<TimeZone>();
for(String id : timeZoneIdList) {
if(id.matches(supportedPattern)) {
timeZoneList.add(TimeZone.getTimeZone(id));
}
}
Collections.sort(timeZoneList, new Comparator<TimeZone>() {
public int compare(final TimeZone a, final TimeZone b) {
return a.getID().compareTo(b.getID());
}
});
for(TimeZone timeZone : timeZoneList) {
String zoneId = timeZone.getID();
String displayName = timeZone.getDisplayName();
double offset = (double) timeZone.getRawOffset() / 1000 / 60 / 60;
String minute = ((offset - (int) offset) * 60) > 0 ? (" & " + (int)
((offset - (int) offset) * 60) + " minute") : "";
System.out.println("Zone id: " + zoneId + ", name: " + displayName + ""
+ ", offset: " + (int) offset + " hour" + minute);
}
}
}
And output would something like this...
.
.
.
Zone id: Asia/Bangkok, name: Indochina Time, offset: 7 hour
Zone id: Asia/Beirut, name: Eastern European Time, offset: 2 hour
Zone id: Asia/Bishkek, name: Kirgizstan Time, offset: 6 hour
Zone id: Asia/Brunei, name: Brunei Time, offset: 8 hour
Zone id: Asia/Calcutta, name: India Standard Time, offset: 5 hour & 30 minute
Zone id: Asia/Choibalsan, name: Choibalsan Time, offset: 8 hour
Zone id: Asia/Chongqing, name: China Standard Time, offset: 8 hour
Zone id: Asia/Chungking, name: China Standard Time, offset: 8 hour
Zone id: Asia/Colombo, name: India Standard Time, offset: 5 hour & 30 minute
Zone id: Asia/Dacca, name: Bangladesh Time, offset: 6 hour
Zone id: Asia/Damascus, name: Eastern European Time, offset: 2 hour
Zone id: Asia/Dhaka, name: Bangladesh Time, offset: 6 hour
.
.
.