/* */ package com.ibm.icu.util; /* */ /* */ import com.ibm.icu.impl.Grego; /* */ import com.ibm.icu.impl.ICUConfig; /* */ import com.ibm.icu.impl.ICULogger; /* */ import com.ibm.icu.impl.JavaTimeZone; /* */ import com.ibm.icu.impl.OlsonTimeZone; /* */ import com.ibm.icu.impl.TimeZoneAdapter; /* */ import com.ibm.icu.impl.ZoneMeta; /* */ import com.ibm.icu.text.TimeZoneFormat; /* */ import com.ibm.icu.text.TimeZoneFormat.Style; /* */ import com.ibm.icu.text.TimeZoneFormat.TimeType; /* */ import com.ibm.icu.text.TimeZoneNames; /* */ import com.ibm.icu.text.TimeZoneNames.NameType; /* */ import java.io.Serializable; /* */ import java.util.Date; /* */ import java.util.Locale; /* */ import java.util.Set; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public abstract class TimeZone /* */ implements Serializable, Cloneable /* */ { /* */ public static ICULogger TimeZoneLogger; /* */ private static final long serialVersionUID = -744942128318337471L; /* */ public static final int TIMEZONE_ICU = 0; /* */ public static final int TIMEZONE_JDK = 1; /* */ public static final int SHORT = 0; /* */ public static final int LONG = 1; /* */ public static final int SHORT_GENERIC = 2; /* */ public static final int LONG_GENERIC = 3; /* */ public static final int SHORT_GMT = 4; /* */ public static final int LONG_GMT = 5; /* */ public static final int SHORT_COMMONLY_USED = 6; /* */ public static final int GENERIC_LOCATION = 7; /* */ public static final String UNKNOWN_ZONE_ID = "Etc/Unknown"; /* */ private String ID; /* */ private static TimeZone defaultZone; /* */ private static String TZDATA_VERSION; /* */ private static int TZ_IMPL; /* */ private static final String TZIMPL_CONFIG_KEY = "com.ibm.icu.util.TimeZone.DefaultTimeZoneType"; /* */ private static final String TZIMPL_CONFIG_ICU = "ICU"; /* */ private static final String TZIMPL_CONFIG_JDK = "JDK"; /* */ public abstract int getOffset(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6); /* */ /* */ public static enum SystemTimeZoneType /* */ { /* 229 */ ANY, /* */ /* */ /* */ /* */ /* */ /* */ /* 236 */ CANONICAL, /* */ /* */ /* */ /* */ /* */ /* */ /* 243 */ CANONICAL_LOCATION; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ private SystemTimeZoneType() {} /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public int getOffset(long date) /* */ { /* 278 */ int[] result = new int[2]; /* 279 */ getOffset(date, false, result); /* 280 */ return result[0] + result[1]; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void getOffset(long date, boolean local, int[] offsets) /* */ { /* 305 */ offsets[0] = getRawOffset(); /* 306 */ if (!local) { /* 307 */ date += offsets[0]; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 322 */ int[] fields = new int[6]; /* 323 */ for (int pass = 0;; pass++) { /* 324 */ Grego.timeToFields(date, fields); /* 325 */ offsets[1] = (getOffset(1, fields[0], fields[1], fields[2], fields[3], fields[5]) - offsets[0]); /* */ /* */ /* */ /* 329 */ if ((pass != 0) || (!local) || (offsets[1] == 0)) { /* */ break; /* */ } /* */ /* 333 */ date -= offsets[1]; /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public abstract void setRawOffset(int paramInt); /* */ /* */ /* */ /* */ /* */ /* */ /* */ public abstract int getRawOffset(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ public String getID() /* */ { /* 359 */ return this.ID; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public void setID(String ID) /* */ { /* 369 */ if (ID == null) { /* 370 */ throw new NullPointerException(); /* */ } /* 372 */ this.ID = ID; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public final String getDisplayName() /* */ { /* 386 */ return _getDisplayName(3, false, ULocale.getDefault(ULocale.Category.DISPLAY)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public final String getDisplayName(Locale locale) /* */ { /* 401 */ return _getDisplayName(3, false, ULocale.forLocale(locale)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public final String getDisplayName(ULocale locale) /* */ { /* 416 */ return _getDisplayName(3, false, locale); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public final String getDisplayName(boolean daylight, int style) /* */ { /* 435 */ return getDisplayName(daylight, style, ULocale.getDefault(ULocale.Category.DISPLAY)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public String getDisplayName(boolean daylight, int style, Locale locale) /* */ { /* 456 */ return getDisplayName(daylight, style, ULocale.forLocale(locale)); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public String getDisplayName(boolean daylight, int style, ULocale locale) /* */ { /* 477 */ if ((style < 0) || (style > 7)) { /* 478 */ throw new IllegalArgumentException("Illegal style: " + style); /* */ } /* */ /* 481 */ return _getDisplayName(style, daylight, locale); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ private String _getDisplayName(int style, boolean daylight, ULocale locale) /* */ { /* 490 */ if (locale == null) { /* 491 */ throw new NullPointerException("locale is null"); /* */ } /* */ /* 494 */ String result = null; /* */ /* 496 */ if ((style == 7) || (style == 3) || (style == 2)) /* */ { /* 498 */ TimeZoneFormat tzfmt = TimeZoneFormat.getInstance(locale); /* 499 */ long date = System.currentTimeMillis(); /* 500 */ Output<TimeZoneFormat.TimeType> timeType = new Output(TimeZoneFormat.TimeType.UNKNOWN); /* */ /* 502 */ switch (style) { /* */ case 7: /* 504 */ result = tzfmt.format(TimeZoneFormat.Style.GENERIC_LOCATION, this, date, timeType); /* 505 */ break; /* */ case 3: /* 507 */ result = tzfmt.format(TimeZoneFormat.Style.GENERIC_LONG, this, date, timeType); /* 508 */ break; /* */ case 2: /* 510 */ result = tzfmt.format(TimeZoneFormat.Style.GENERIC_SHORT, this, date, timeType); /* */ } /* */ /* */ /* */ /* */ /* */ /* 517 */ if (((daylight) && (timeType.value == TimeZoneFormat.TimeType.STANDARD)) || ((!daylight) && (timeType.value == TimeZoneFormat.TimeType.DAYLIGHT))) /* */ { /* 519 */ int offset = daylight ? getRawOffset() + getDSTSavings() : getRawOffset(); /* 520 */ result = tzfmt.formatOffsetLocalizedGMT(offset); /* */ } /* */ } /* 523 */ else if ((style == 5) || (style == 4)) /* */ { /* 525 */ TimeZoneFormat tzfmt = TimeZoneFormat.getInstance(locale); /* 526 */ int offset = (daylight) && (useDaylightTime()) ? getRawOffset() + getDSTSavings() : getRawOffset(); /* 527 */ switch (style) { /* */ case 5: /* 529 */ result = tzfmt.formatOffsetLocalizedGMT(offset); /* 530 */ break; /* */ case 4: /* 532 */ result = tzfmt.formatOffsetRFC822(offset); /* */ } /* */ } /* */ else /* */ { /* 537 */ assert ((style == 1) || (style == 0) || (style == 6)); /* */ /* */ /* 540 */ long date = System.currentTimeMillis(); /* 541 */ TimeZoneNames tznames = TimeZoneNames.getInstance(locale); /* 542 */ TimeZoneNames.NameType nameType = null; /* 543 */ switch (style) { /* */ case 1: /* 545 */ nameType = daylight ? TimeZoneNames.NameType.LONG_DAYLIGHT : TimeZoneNames.NameType.LONG_STANDARD; /* 546 */ break; /* */ case 0: /* 548 */ nameType = daylight ? TimeZoneNames.NameType.SHORT_DAYLIGHT : TimeZoneNames.NameType.SHORT_STANDARD; /* 549 */ break; /* */ case 6: /* 551 */ nameType = daylight ? TimeZoneNames.NameType.SHORT_DAYLIGHT_COMMONLY_USED : TimeZoneNames.NameType.SHORT_STANDARD_COMMONLY_USED; /* */ } /* */ /* 554 */ result = tznames.getDisplayName(ZoneMeta.getCanonicalCLDRID(this), nameType, date); /* 555 */ if (result == null) /* */ { /* 557 */ TimeZoneFormat tzfmt = TimeZoneFormat.getInstance(locale); /* 558 */ int offset = (daylight) && (useDaylightTime()) ? getRawOffset() + getDSTSavings() : getRawOffset(); /* 559 */ result = tzfmt.formatOffsetLocalizedGMT(offset); /* */ } /* */ } /* 562 */ assert (result != null); /* */ /* 564 */ return result; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public int getDSTSavings() /* */ { /* 583 */ if (useDaylightTime()) { /* 584 */ return 3600000; /* */ } /* 586 */ return 0; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public abstract boolean useDaylightTime(); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public abstract boolean inDaylightTime(Date paramDate); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static synchronized TimeZone getTimeZone(String ID) /* */ { /* 630 */ return getTimeZone(ID, TZ_IMPL); /* */ } /* */ /* */ /* */ /* */ /* */ public static synchronized TimeZone getTimeZone(String ID, int type) /* */ { /* */ TimeZone result; /* */ /* */ /* */ /* */ TimeZone result; /* */ /* */ /* */ /* 646 */ if (type == 1) { /* 647 */ result = new JavaTimeZone(ID); /* */ /* */ /* */ /* */ } /* */ else /* */ { /* */ /* */ /* */ /* 657 */ if (ID == null) { /* 658 */ throw new NullPointerException(); /* */ } /* 660 */ result = ZoneMeta.getSystemTimeZone(ID); /* */ /* 662 */ if (result == null) { /* 663 */ result = ZoneMeta.getCustomTimeZone(ID); /* */ } /* 665 */ if (result == null) /* */ { /* 667 */ if ((TimeZoneLogger != null) && (TimeZoneLogger.isLoggingOn())) { /* 668 */ TimeZoneLogger.warning("\"" + ID + "\" is a bogus id so timezone is falling back to Etc/Unknown(GMT)."); /* */ } /* */ /* 671 */ result = new SimpleTimeZone(0, "Etc/Unknown"); /* */ } /* */ } /* 674 */ return result; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static synchronized void setDefaultTimeZoneType(int type) /* */ { /* 684 */ if ((type != 0) && (type != 1)) { /* 685 */ throw new IllegalArgumentException("Invalid timezone type"); /* */ } /* 687 */ TZ_IMPL = type; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static int getDefaultTimeZoneType() /* */ { /* 697 */ return TZ_IMPL; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static Set<String> getAvailableIDs(SystemTimeZoneType zoneType, String region, Integer rawOffset) /* */ { /* 717 */ return ZoneMeta.getAvailableIDs(zoneType, region, rawOffset); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String[] getAvailableIDs(int rawOffset) /* */ { /* 733 */ Set<String> ids = getAvailableIDs(SystemTimeZoneType.ANY, null, Integer.valueOf(rawOffset)); /* 734 */ return (String[])ids.toArray(new String[0]); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String[] getAvailableIDs(String country) /* */ { /* 751 */ Set<String> ids = getAvailableIDs(SystemTimeZoneType.ANY, country, null); /* 752 */ return (String[])ids.toArray(new String[0]); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String[] getAvailableIDs() /* */ { /* 766 */ Set<String> ids = getAvailableIDs(SystemTimeZoneType.ANY, null, null); /* 767 */ return (String[])ids.toArray(new String[0]); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static int countEquivalentIDs(String id) /* */ { /* 785 */ return ZoneMeta.countEquivalentIDs(id); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String getEquivalentID(String id, int index) /* */ { /* 808 */ return ZoneMeta.getEquivalentID(id, index); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static synchronized TimeZone getDefault() /* */ { /* 819 */ if (defaultZone == null) { /* 820 */ if (TZ_IMPL == 1) { /* 821 */ defaultZone = new JavaTimeZone(); /* */ } else { /* 823 */ java.util.TimeZone temp = java.util.TimeZone.getDefault(); /* 824 */ defaultZone = getTimeZone(temp.getID()); /* */ } /* */ } /* 827 */ return (TimeZone)defaultZone.clone(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static synchronized void setDefault(TimeZone tz) /* */ { /* 839 */ defaultZone = tz; /* 840 */ java.util.TimeZone jdkZone = null; /* 841 */ if ((defaultZone instanceof JavaTimeZone)) { /* 842 */ jdkZone = ((JavaTimeZone)defaultZone).unwrap(); /* */ /* */ /* */ /* */ } /* 847 */ else if (tz != null) { /* 848 */ if ((tz instanceof OlsonTimeZone)) /* */ { /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 857 */ String icuID = tz.getID(); /* 858 */ jdkZone = java.util.TimeZone.getTimeZone(icuID); /* 859 */ if (!icuID.equals(jdkZone.getID())) /* */ { /* 861 */ jdkZone = null; /* */ } /* */ } /* 864 */ if (jdkZone == null) { /* 865 */ jdkZone = TimeZoneAdapter.wrap(tz); /* */ } /* */ } /* */ /* 869 */ java.util.TimeZone.setDefault(jdkZone); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public boolean hasSameRules(TimeZone other) /* */ { /* 882 */ return (other != null) && (getRawOffset() == other.getRawOffset()) && (useDaylightTime() == other.useDaylightTime()); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public Object clone() /* */ { /* */ try /* */ { /* 893 */ TimeZone other = (TimeZone)super.clone(); /* 894 */ other.ID = this.ID; /* 895 */ return other; /* */ } catch (CloneNotSupportedException e) { /* 897 */ throw new IllegalStateException(); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ public boolean equals(Object obj) /* */ { /* 906 */ if (this == obj) return true; /* 907 */ if ((obj == null) || (getClass() != obj.getClass())) return false; /* 908 */ return this.ID.equals(((TimeZone)obj).ID); /* */ } /* */ /* */ /* */ /* */ /* */ public int hashCode() /* */ { /* 916 */ return this.ID.hashCode(); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static synchronized String getTZDataVersion() /* */ { /* 929 */ if (TZDATA_VERSION == null) { /* 930 */ UResourceBundle tzbundle = UResourceBundle.getBundleInstance("com/ibm/icu/impl/data/icudt48b", "zoneinfo64"); /* */ /* 932 */ TZDATA_VERSION = tzbundle.getString("TZVersion"); /* */ } /* 934 */ return TZDATA_VERSION; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String getCanonicalID(String id) /* */ { /* 948 */ return getCanonicalID(id, null); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String getCanonicalID(String id, boolean[] isSystemID) /* */ { /* 964 */ String canonicalID = null; /* 965 */ boolean systemTzid = false; /* 966 */ if ((id != null) && (id.length() != 0)) { /* 967 */ if (id.equals("Etc/Unknown")) /* */ { /* 969 */ canonicalID = "Etc/Unknown"; /* 970 */ systemTzid = false; /* */ } else { /* 972 */ canonicalID = ZoneMeta.getCanonicalCLDRID(id); /* 973 */ if (canonicalID != null) { /* 974 */ systemTzid = true; /* */ } else { /* 976 */ canonicalID = ZoneMeta.getCustomID(id); /* */ } /* */ } /* */ } /* 980 */ if (isSystemID != null) { /* 981 */ isSystemID[0] = systemTzid; /* */ } /* 983 */ return canonicalID; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public static String getRegion(String id) /* */ { /* 1003 */ String region = null; /* */ /* */ /* 1006 */ if (!id.equals("Etc/Unknown")) { /* 1007 */ region = ZoneMeta.getRegion(id); /* */ } /* 1009 */ if (region == null) /* */ { /* 1011 */ throw new IllegalArgumentException("Unknown system zone id: " + id); /* */ } /* 1013 */ return region; /* */ } /* */ /* */ static /* */ { /* 114 */ TimeZoneLogger = ICULogger.getICULogger(TimeZone.class.getName()); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 1031 */ defaultZone = null; /* */ /* */ /* */ /* */ /* 1036 */ TZDATA_VERSION = null; /* */ /* */ /* */ /* */ /* 1041 */ TZ_IMPL = 0; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 1051 */ String type = ICUConfig.get("com.ibm.icu.util.TimeZone.DefaultTimeZoneType", "ICU"); /* 1052 */ if (type.equalsIgnoreCase("JDK")) { /* 1053 */ TZ_IMPL = 1; /* */ } /* */ } /* */ } /* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\ibm\icu\util\TimeZone.class * Java compiler version: 5 (49.0) * JD-Core Version: 0.7.1 */