Java tutorial
//package org.mbari.util; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; import java.util.TimeZone; /** * GmtCalendar is a useful class for working with times that are based using GMT * time. For example, if a data loger collects info and returns it as GMT using * GregorianCalendar is a pain because it will assumes that user supplied times * are from the default TimeZone. This will cause an ofset in the time of each * data sample. To avoid this GmtCalendar uses the GMT as it's default TimeZone. * Note that it will return time in milliseconds UTC but any dates produced by * using DateFormat will give the sample time based on the local time. * * @author Brian Schlining * @version 30 Nov 1999 * @created October 31, 2000 */ public class GmtCalendar extends GregorianCalendar { /** * Constructs a GmtCalendar with the given date set in the GMT time zone * with the default locale. * * @param year * the value used to set the YEAR time field in the calendar. * @param month * the value used to set the MONTH time field in the calendar. * Month value is 0-based. e.g., 0 for January. * @param date * the value used to set the DATE time field in the calendar. */ public GmtCalendar(int year, int month, int date) { super(TimeZone.getTimeZone("GMT"), Locale.getDefault()); this.set(ERA, AD); this.set(YEAR, year); this.set(MONTH, month); this.set(DATE, date); } /** * Constructs a GregorianCalendar with the given date and time set for the * GMT time zone with the default locale. * * @param year * the value used to set the YEAR time field in the calendar. * @param month * the value used to set the MONTH time field in the calendar. * Month value is 0-based. e.g., 0 for January. * @param date * the value used to set the DATE time field in the calendar. * @param hour * the value used to set the HOUR_OF_DAY time field in the * calendar. * @param minute * the value used to set the MINUTE time field in the calendar. */ public GmtCalendar(int year, int month, int date, int hour, int minute) { super(TimeZone.getTimeZone("GMT"), Locale.getDefault()); this.set(ERA, AD); this.set(YEAR, year); this.set(MONTH, month); this.set(DATE, date); this.set(HOUR_OF_DAY, hour); this.set(MINUTE, minute); } /** * Constructs a GregorianCalendar with the given date and time set for the * GMT time zone with the default locale. * * @param year * the value used to set the YEAR time field in the calendar. * @param month * the value used to set the MONTH time field in the calendar. * Month value is 0-based. e.g., 0 for January. * @param date * the value used to set the DATE time field in the calendar. * @param hour * the value used to set the HOUR_OF_DAY time field in the * calendar. * @param minute * the value used to set the MINUTE time field in the calendar. * @param second * the value used to set the SECOND time field in the calendar. */ public GmtCalendar(int year, int month, int date, int hour, int minute, int second) { super(TimeZone.getTimeZone("GMT"), Locale.getDefault()); this.set(ERA, AD); this.set(YEAR, year); this.set(MONTH, month); this.set(DATE, date); this.set(HOUR_OF_DAY, hour); this.set(MINUTE, minute); this.set(SECOND, second); } /** * Constructor for the GmtCalendar object * * @param date * Description of the Parameter */ public GmtCalendar(Date date) { super(TimeZone.getTimeZone("GMT"), Locale.getDefault()); this.clear(); this.setTimeZone(TimeZone.getTimeZone("GMT")); this.setTime(date); this.setTime(this.getTime()); } /** * Constructor for the GmtCalendar object * * @param millisec * Description of the Parameter */ public GmtCalendar(long millisec) { super(TimeZone.getTimeZone("GMT"), Locale.getDefault()); this.clear(); this.setTimeZone(TimeZone.getTimeZone("GMT")); this.setTimeInMillis(millisec); this.setTime(this.getTime()); } }