Package com.ibm.icu.impl
Class ZoneMeta
java.lang.Object
com.ibm.icu.impl.ZoneMeta
This class, not to be instantiated, implements the meta-data
missing from the underlying core JDK implementation of time zones.
There are two missing features: Obtaining a list of available zones
for a given country (as defined by the Olson database), and
obtaining a list of equivalent zones for a given zone (as defined
by Olson links).
This class uses a data class, ZoneMetaData, which is created by the
tool tz2icu.
- Since:
- ICU 2.8
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Custom time zone object cacheprivate static class
System time zone object cache -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final boolean
private static final ZoneMeta.CustomTimeZoneCache
private static final String
private static final String
private static final int
private static final int
private static final int
private static final String
private static final String
private static final String
private static final String
private static SoftReference<Set<String>>
private static SoftReference<Set<String>>
private static SoftReference<Set<String>>
private static final ZoneMeta.SystemTimeZoneCache
private static String[]
private static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
Returns the number of IDs in the equivalency group that includes the given ID.private static String
findCLDRCanonicalID
(String tzid) (package private) static String
formatCustomID
(int hour, int min, int sec, boolean negative) getAvailableIDs
(TimeZone.SystemTimeZoneType type, String region, Integer rawOffset) Returns an immutable set of system IDs for the given conditions.static String
static String
getCanonicalCLDRID
(String tzid) Return the canonical id for this tzid defined by CLDR, which might be the id itself.static String
getCanonicalCountry
(String tzid) Return the canonical country code for this tzid.static String
getCanonicalCountry
(String tzid, Output<Boolean> isPrimary) Return the canonical country code for this tzid.Returns an immutable set of canonical system time zone IDs that are associated with actual locations.Returns an immutable set of canonical system time zone IDs.static String
getCustomID
(String id) Parse a custom time zone identifier and return the normalized custom time zone identifier for the given custom id string.static SimpleTimeZone
getCustomTimeZone
(int offset) Creates a custom zone for the offsetstatic SimpleTimeZone
Parse a custom time zone identifier and return a corresponding zone.static String
getEquivalentID
(String id, int index) Returns an ID in the equivalency group that includes the given ID.static String
Returns primary IANA zone ID for the input zone ID.static String
Return the region code for this tzid.static String
getShortID
(TimeZone tz) Returns the time zone's short ID for the zone.static String
getShortID
(String id) Returns the time zone's short ID for the zone ID.private static String
getShortIDFromCanonical
(String canonicalID) static OlsonTimeZone
Returns a frozen OlsonTimeZone instance for the given ID.Returns an immutable set of system time zone IDs.private static String
getZoneID
(int idx) private static String[]
private static int
getZoneIndex
(String zid) static UResourceBundle
openOlsonResource
(UResourceBundle top, String id) Given an ID and the top-level resource of the zoneinfo resource, open the appropriate resource for the given time zone.(package private) static boolean
parseCustomID
(String id, int[] fields)
-
Field Details
-
ASSERT
private static final boolean ASSERT- See Also:
-
ZONEINFORESNAME
- See Also:
-
kREGIONS
- See Also:
-
kZONES
- See Also:
-
kNAMES
- See Also:
-
kGMT_ID
- See Also:
-
kCUSTOM_TZ_PREFIX
- See Also:
-
kWorld
- See Also:
-
REF_SYSTEM_ZONES
-
REF_CANONICAL_SYSTEM_ZONES
-
REF_CANONICAL_SYSTEM_LOCATION_ZONES
-
ZONEIDS
-
CANONICAL_ID_CACHE
-
REGION_CACHE
-
SINGLE_COUNTRY_CACHE
-
SYSTEM_ZONE_CACHE
-
kMAX_CUSTOM_HOUR
private static final int kMAX_CUSTOM_HOUR- See Also:
-
kMAX_CUSTOM_MIN
private static final int kMAX_CUSTOM_MIN- See Also:
-
kMAX_CUSTOM_SEC
private static final int kMAX_CUSTOM_SEC- See Also:
-
CUSTOM_ZONE_CACHE
-
-
Constructor Details
-
ZoneMeta
public ZoneMeta()
-
-
Method Details
-
getSystemZIDs
Returns an immutable set of system time zone IDs. Etc/Unknown is excluded.- Returns:
- An immutable set of system time zone IDs.
-
getCanonicalSystemZIDs
Returns an immutable set of canonical system time zone IDs. The result set is a subset ofgetSystemZIDs()
, but not including aliases, such as "US/Eastern".- Returns:
- An immutable set of canonical system time zone IDs.
-
getCanonicalSystemLocationZIDs
Returns an immutable set of canonical system time zone IDs that are associated with actual locations. The result set is a subset ofgetCanonicalSystemZIDs()
, but not including IDs, such as "Etc/GTM+5".- Returns:
- An immutable set of canonical system time zone IDs that are associated with actual locations.
-
getAvailableIDs
public static Set<String> getAvailableIDs(TimeZone.SystemTimeZoneType type, String region, Integer rawOffset) Returns an immutable set of system IDs for the given conditions.- Parameters:
type
- a system time zone type.region
- a region, or null.rawOffset
- a zone raw offset or null.- Returns:
- An immutable set of system IDs for the given conditions.
-
countEquivalentIDs
Returns the number of IDs in the equivalency group that includes the given ID. An equivalency group contains zones that behave identically to the given zone.If there are no equivalent zones, then this method returns 0. This means either the given ID is not a valid zone, or it is and there are no other equivalent zones.
- Parameters:
id
- a system time zone ID- Returns:
- the number of zones in the equivalency group containing 'id', or zero if there are no equivalent zones.
- See Also:
-
getEquivalentID
Returns an ID in the equivalency group that includes the given ID. An equivalency group contains zones that behave identically to the given zone.The given index must be in the range 0..n-1, where n is the value returned by
countEquivalentIDs(id)
. For some value of 'index', the returned value will be equal to the given id. If the given id is not a valid system time zone, or if 'index' is out of range, then returns an empty string.- Parameters:
id
- a system time zone IDindex
- a value from 0 to n-1, where n is the value returned bycountEquivalentIDs(id)
- Returns:
- the ID of the index-th zone in the equivalency group containing 'id', or an empty string if 'id' is not a valid system ID or 'index' is out of range
- See Also:
-
getZoneIDs
-
getZoneID
-
getZoneIndex
-
getCanonicalCLDRID
-
getCanonicalCLDRID
Return the canonical id for this tzid defined by CLDR, which might be the id itself. If the given tzid is not known, return null. Note: This internal API supports all known system IDs and "Etc/Unknown" (which is NOT a system ID). -
findCLDRCanonicalID
-
getIanaID
Returns primary IANA zone ID for the input zone ID. When input zone ID is not known, this method returns null.- Parameters:
tzid
- An input zone ID.- Returns:
- A primary IANA zone ID equivalent to the input zone ID.
-
getRegion
Return the region code for this tzid. If tzid is not a system zone ID, this method returns null. -
getCanonicalCountry
Return the canonical country code for this tzid. If we have none, or if the time zone is not associated with a country or unknown, return null. -
getCanonicalCountry
Return the canonical country code for this tzid. If we have none, or if the time zone is not associated with a country or unknown, return null. When the given zone is the primary zone of the country, true is set to isPrimary. -
openOlsonResource
Given an ID and the top-level resource of the zoneinfo resource, open the appropriate resource for the given time zone. Dereference links if necessary.- Parameters:
top
- the top level resource of the zoneinfo resource or null.id
- zone id- Returns:
- the corresponding zone resource or null if not found
-
getSystemTimeZone
Returns a frozen OlsonTimeZone instance for the given ID. This method returns null when the given ID is unknown. -
getCustomTimeZone
Parse a custom time zone identifier and return a corresponding zone.- Parameters:
id
- a string of the form GMT[+-]hh:mm, GMT[+-]hhmm, or GMT[+-]hh.- Returns:
- a frozen SimpleTimeZone with the given offset and no Daylight Savings Time, or null if the id cannot be parsed.
-
getCustomID
Parse a custom time zone identifier and return the normalized custom time zone identifier for the given custom id string.- Parameters:
id
- a string of the form GMT[+-]hh:mm, GMT[+-]hhmm, or GMT[+-]hh.- Returns:
- The normalized custom id string.
-
parseCustomID
-
getCustomTimeZone
Creates a custom zone for the offset- Parameters:
offset
- GMT offset in milliseconds- Returns:
- A custom TimeZone for the offset with normalized time zone id
-
formatCustomID
-
getShortID
Returns the time zone's short ID for the zone. For example, "uslax" for zone "America/Los_Angeles".- Parameters:
tz
- the time zone- Returns:
- the short ID of the time zone, or null if the short ID is not available.
-
getShortID
Returns the time zone's short ID for the zone ID. For example, "uslax" for zone ID "America/Los_Angeles".- Parameters:
id
- the time zone ID- Returns:
- the short ID of the time zone ID, or null if the short ID is not available.
-
getShortIDFromCanonical
-