// this is used to prevent duplicates in the list
ArrayList descriptionList = new ArrayList();
String[] zoneIds = TimeZone.getAvailableIDs();
for (int i=0; i<zoneIds.length; i++) {
TimeZone tz = TimeZone.getTimeZone(zoneIds[i]);
String shortName = tz.getDisplayName(tz.inDaylightTime(today), TimeZone.SHORT);
String longName = tz.getDisplayName(tz.inDaylightTime(today), TimeZone.LONG);
int offset = tz.getOffset(today.getTime());
int hour = offset / (60*60*1000);
int min = Math.abs(offset / (60*1000)) % 60;
StringBuffer description = new StringBuffer();