The java.util.TimeZone class can be used to convertdates and times from local values (default) to othertime zones. The following example shows how:
import java.util.*;public class TimeZoneTest {public static void main(java.lang.String[] args){Arrays aTimeZones = null;String[] sIds = TimeZone.getAvailableIDs(); // GETID'STimeZones.sort(sIds); // SORT ID'SCalendar cal =Calendar.getInstance(TimeZone.getDefault()); // CREATEDEFAULT CALENDARdisplayDate(cal); // DISPLAY LOCAL TIMEfor (int i = 0; i < sIds.length; i++){cal.setTimeZone(TimeZone.getTimeZone(sIds[i]));cal.setTime(cal.getTime()); // FORCE TIME RECALCdisplayDate(cal); // DISPLAY TIME}}// Format & display Calendar infopublic static void displayDate(java.util.Calendar cal){int iYear = cal.get(Calendar.YEAR);int iMonth = cal.get(Calendar.MONTH);int iDay = cal.get(Calendar.DAY_OF_MONTH);int iHour = cal.get(Calendar.HOUR_OF_DAY);int iMinute = cal.get(Calendar.MINUTE);System.out.println(cal.getTimeZone().getID() + ": " +buildTwoDigits(iMonth) + "/" + buildTwoDigits(iDay) +"/" + iYear + " " + buildTwoDigits(iHour) + ":" +buildTwoDigits(iMinute));}// Force two-digit displaypublic static String buildTwoDigits(int iDigitIn){String sDigitIn = Integer.toString(iDigitIn);if (sDigitIn.length() == 1) return "0" + sDigitIn;else return sDigitIn;}}
Note the following tips/traps:
* Calendar objects will inherit the local time zone bydefault. Calendar.getInstance() creates the sameobject as Calendar.getInstance(TimeZone.getDefault()). In addition, the local time will be set as thedefault value.
* Date objects will also inherit the local time zonevalue by default. Performing a getTime on a Calendarinstance will return a Date value converted to thelocal time zone regardless of the time zone of theCalendar.