home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.Serializable;
- import java.lang.ref.SoftReference;
- import java.security.AccessController;
- import java.text.DateFormat;
- import java.text.NumberFormat;
- import java.text.ParsePosition;
- import java.text.SimpleDateFormat;
- import sun.security.action.GetPropertyAction;
-
- public abstract class TimeZone implements Serializable, Cloneable {
- public static final int SHORT = 0;
- public static final int LONG = 1;
- private static final int ONE_MINUTE = 60000;
- private static final int ONE_HOUR = 3600000;
- private static final int ONE_DAY = 86400000;
- private static Hashtable cachedLocaleData = new Hashtable(3);
- static final long serialVersionUID = 3581463369166924961L;
- // $FF: renamed from: ID java.lang.String
- private String field_0;
- private static TimeZone defaultZone = null;
- static final String GMT_ID = "GMT";
- private static final int GMT_ID_LENGTH = 3;
- private static final String CUSTOM_ID = "Custom";
- private static NumberFormat numberFormat = null;
- private static final TimeZone GMT = new SimpleTimeZone(0, "GMT");
- // $FF: synthetic field
- static Class class$java$util$TimeZoneData;
-
- public abstract int getOffset(int var1, int var2, int var3, int var4, int var5, int var6);
-
- int getOffset(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- return this.getOffset(var1, var2, var3, var4, var5, var6);
- }
-
- public abstract void setRawOffset(int var1);
-
- public abstract int getRawOffset();
-
- public String getID() {
- return this.field_0;
- }
-
- public void setID(String var1) {
- if (var1 == null) {
- throw new NullPointerException();
- } else {
- this.field_0 = var1;
- }
- }
-
- public final String getDisplayName() {
- return this.getDisplayName(false, 1, Locale.getDefault());
- }
-
- public final String getDisplayName(Locale var1) {
- return this.getDisplayName(false, 1, var1);
- }
-
- public final String getDisplayName(boolean var1, int var2) {
- return this.getDisplayName(var1, var2, Locale.getDefault());
- }
-
- public String getDisplayName(boolean var1, int var2, Locale var3) {
- if (var2 != 0 && var2 != 1) {
- throw new IllegalArgumentException("Illegal style: " + var2);
- } else {
- SoftReference var4 = (SoftReference)cachedLocaleData.get(var3);
- SimpleDateFormat var5;
- if (var4 == null || (var5 = (SimpleDateFormat)var4.get()) == null) {
- var5 = new SimpleDateFormat((String)null, var3);
- cachedLocaleData.put(var3, new SoftReference(var5));
- }
-
- SimpleTimeZone var6;
- if (var1 && this.useDaylightTime()) {
- int var7 = 3600000;
-
- try {
- var7 = ((SimpleTimeZone)this).getDSTSavings();
- } catch (ClassCastException var9) {
- }
-
- var6 = new SimpleTimeZone(this.getRawOffset(), this.getID(), 0, 1, 0, 0, 1, 1, 0, 0, var7);
- } else {
- var6 = new SimpleTimeZone(this.getRawOffset(), this.getID());
- }
-
- var5.applyPattern(var2 == 1 ? "zzzz" : "z");
- ((DateFormat)var5).setTimeZone(var6);
- return ((DateFormat)var5).format(new Date(864000000L));
- }
- }
-
- public abstract boolean useDaylightTime();
-
- public abstract boolean inDaylightTime(Date var1);
-
- public static synchronized TimeZone getTimeZone(String var0) {
- Object var1 = TimeZoneData.get(var0);
- if (var1 == null) {
- var1 = parseCustomTimeZone(var0);
- }
-
- if (var1 == null) {
- var1 = (TimeZone)GMT.clone();
- }
-
- return (TimeZone)var1;
- }
-
- public static synchronized String[] getAvailableIDs(int var0) {
- Vector var2 = new Vector();
-
- for(int var3 = 0; var3 < TimeZoneData.zones.length; ++var3) {
- if (TimeZoneData.zones[var3].getRawOffset() == var0) {
- var2.add(TimeZoneData.zones[var3].getID());
- }
- }
-
- String[] var1 = new String[var2.size()];
- var2.toArray(var1);
- return var1;
- }
-
- public static synchronized String[] getAvailableIDs() {
- String[] var0 = new String[TimeZoneData.zones.length];
- int var1 = 0;
-
- for(int var2 = 0; var2 < TimeZoneData.zones.length; ++var2) {
- var0[var1++] = TimeZoneData.zones[var2].getID();
- }
-
- String[] var3 = new String[var1];
- System.arraycopy(var0, 0, var3, 0, var1);
- return var3;
- }
-
- private static native String getSystemTimeZoneID(String var0, String var1);
-
- public static synchronized TimeZone getDefault() {
- if (defaultZone == null) {
- String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("user.timezone"));
- if (var0 == null || var0.equals("")) {
- String var1 = (String)AccessController.doPrivileged(new GetPropertyAction("user.region"));
- String var2 = (String)AccessController.doPrivileged(new GetPropertyAction("java.home"));
- var0 = getSystemTimeZoneID(var2, var1);
- if (var0 == null) {
- var0 = "GMT";
- }
-
- AccessController.doPrivileged(new 1(var0));
- }
-
- defaultZone = getTimeZone(var0);
- }
-
- return (TimeZone)defaultZone.clone();
- }
-
- public static synchronized void setDefault(TimeZone var0) {
- defaultZone = var0;
- }
-
- public boolean hasSameRules(TimeZone var1) {
- return var1 != null && this.getRawOffset() == var1.getRawOffset() && this.useDaylightTime() == var1.useDaylightTime();
- }
-
- public Object clone() {
- try {
- TimeZone var1 = (TimeZone)super.clone();
- var1.field_0 = this.field_0;
- return var1;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- private static final SimpleTimeZone parseCustomTimeZone(String var0) {
- if (var0.length() > 3 && var0.regionMatches(true, 0, "GMT", 0, 3)) {
- ParsePosition var1 = new ParsePosition(3);
- boolean var2 = false;
- if (var0.charAt(var1.getIndex()) == '-') {
- var2 = true;
- } else if (var0.charAt(var1.getIndex()) != '+') {
- return null;
- }
-
- var1.setIndex(var1.getIndex() + 1);
- Class var4 = class$java$util$TimeZoneData == null ? (class$java$util$TimeZoneData = class$("java.util.TimeZoneData")) : class$java$util$TimeZoneData;
- synchronized(var4) {
- if (numberFormat == null) {
- numberFormat = NumberFormat.getInstance();
- numberFormat.setParseIntegerOnly(true);
- }
- }
-
- NumberFormat var5 = numberFormat;
- synchronized(var5) {
- int var6 = var1.getIndex();
- Number var7 = numberFormat.parse(var0, var1);
- if (var7 == null) {
- Object var8 = null;
- return (SimpleTimeZone)var8;
- } else {
- int var3 = var7.intValue();
- if (var1.getIndex() < var0.length() && var0.charAt(var1.getIndex()) == ':') {
- var3 *= 60;
- var1.setIndex(var1.getIndex() + 1);
- var7 = numberFormat.parse(var0, var1);
- if (var7 == null) {
- Object var16 = null;
- return (SimpleTimeZone)var16;
- }
-
- var3 += var7.intValue();
- } else if (var3 < 30 && var1.getIndex() - var6 <= 2) {
- var3 *= 60;
- } else {
- var3 = var3 % 100 + var3 / 100 * 60;
- }
-
- if (var2) {
- var3 = -var3;
- }
-
- SimpleTimeZone var9 = new SimpleTimeZone(var3 * '\uea60', "Custom");
- return var9;
- }
- }
- } else {
- return null;
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-