/* Copyright (C) 1998, 1999 Cygnus Solutions This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.util; /** * @author Per Bothner * @date October 24, 1998. */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3. * Status: getAvailableIDs, getDefault, getTimeZone only know about GMT. */ public abstract class TimeZone implements java.io.Serializable, Cloneable { public static final int SHORT = 0; public static final int LONG = 1; // The fields are as specified in Sun's "Serialized Form" // in the JDK 1.2 beta 4 API specification. String ID; static final TimeZone zoneGMT = new SimpleTimeZone(0, "GMT"); private static TimeZone zoneDefault; public TimeZone () { } public abstract int getOffset (int era, int year, int month, int day, int dayOfWeek, int milliseconds); public abstract void setRawOffset (int offsetMillis); public abstract int getRawOffset (); public String getID () { return ID; } public void setID (String ID) { this.ID = ID; } public final String getDisplayName() { return ID; // FIXME } // public final String getDisplayName (Local locale) { ... } FIXME public final String getDisplayName (boolean daylight, int style) { return ID; // FIXME } /* public final String getDisplayName (boolean daylight, int style, Locale locale) { return ID; // FIXME } */ public abstract boolean useDaylightTime(); public abstract boolean inDaylightTime (Date date); public static TimeZone getTimeZone (String ID) { return zoneGMT; // FIXME } public static String[] getAvailableIDs() { // FIXME - only knows about GMT String[] zones = new String[1]; zones[0] = "GMT"; return zones; } public static String[] getAvailableIDs(int rawOffset) { return rawOffset == 0 ? getAvailableIDs() : new String[0]; // FIXME } private static synchronized TimeZone setDefault() { if (zoneDefault == null) { try { String id = System.getProperty("user.timezone"); if (id != null && ! id.equals("GMT")) zoneDefault = getTimeZone(id); } catch (Exception ex) { } if (zoneDefault == null) zoneDefault = zoneGMT; } return zoneDefault; } public static TimeZone getDefault() { return zoneDefault == null ? setDefault() : zoneDefault; } public static void setDefault (TimeZone zone) { zoneDefault = zone; } public boolean hasSameRules (TimeZone other) { return this == other; } // public Object clone (); }