class TimeZone

Defined at line 133 of file ../../third_party/icu/default/source/i18n/unicode/timezone.h

TimeZone

represents a time zone offset, and also figures out daylight

savings.

Typically, you get a

TimeZone

using

createDefault

which creates a

TimeZone

based on the time zone where the program

is running. For example, for a program running in Japan,

createDefault

creates a

TimeZone

object based on Japanese Standard Time.

You can also get a

TimeZone

using

createTimeZone

along

with a time zone ID. For instance, the time zone ID for the US Pacific

Time zone is "America/Los_Angeles". So, you can get a Pacific Time

TimeZone

object

with:

TimeZone *tz = TimeZone::createTimeZone("America/Los_Angeles");

You can use the

createEnumeration

method to iterate through

all the supported time zone IDs, or the

getCanonicalID

method to check

if a time zone ID is supported or not. You can then choose a

supported ID to get a

TimeZone

.

If the time zone you want is not represented by one of the

supported IDs, then you can create a custom time zone ID with

the following syntax:

GMT[+|-]hh[[:]mm]

For example, you might specify GMT+14:00 as a custom

time zone ID. The

TimeZone

that is returned

when you specify a custom time zone ID uses the specified

offset from GMT(=UTC) and does not observe daylight saving

time. For example, you might specify GMT+14:00 as a custom

time zone ID to create a TimeZone representing 14 hours ahead

of GMT (with no daylight saving time). In addition,

getCanonicalID

can also be used to

normalize a custom time zone ID.

TimeZone is an abstract class representing a time zone. A TimeZone is needed for

Calendar to produce local time for a particular time zone. A TimeZone comprises

three basic pieces of information:

A time zone offset; that, is the number of milliseconds to add or subtract

from a time expressed in terms of GMT to convert it to the same time in that

time zone (without taking daylight savings time into account).

Logic necessary to take daylight savings time into account if daylight savings

time is observed in that time zone (e.g., the days and hours on which daylight

savings time begins and ends).

An ID. This is a text string that uniquely identifies the time zone.

(Only the ID is actually implemented in TimeZone; subclasses of TimeZone may handle

daylight savings time and GMT offset in different ways. Currently we have the following

TimeZone subclasses: RuleBasedTimeZone, SimpleTimeZone, and VTimeZone.)

<P

>

The TimeZone class contains a static list containing a TimeZone object for every

combination of GMT offset and daylight-savings time rules currently in use in the

world, each with a unique ID. Each ID consists of a region (usually a continent or

ocean) and a city in that region, separated by a slash, (for example, US Pacific

Time is "America/Los_Angeles.") Because older versions of this class used

three- or four-letter abbreviations instead, there is also a table that maps the older

abbreviations to the newer ones (for example, "PST" maps to "America/Los_Angeles").

Anywhere the API requires an ID, you can use either form.

<P

>

To create a new TimeZone, you call the factory function TimeZone::createTimeZone()

and pass it a time zone ID. You can use the createEnumeration() function to

obtain a list of all the time zone IDs recognized by createTimeZone().

<P

>

You can also use TimeZone::createDefault() to create a TimeZone. This function uses

platform-specific APIs to produce a TimeZone for the time zone corresponding to

the client's computer's physical location. For example, if you're in Japan (assuming

your machine is set up correctly), TimeZone::createDefault() will return a TimeZone

for Japanese Standard Time ("Asia/Tokyo").

Public Methods

bool operator!= (const TimeZone & that)

Returns true if the two TimeZones are NOT equal; that is, if operator==() returns

false.

Parameters

that The TimeZone object to be compared with.

Returns

true if the given TimeZone is not equal to this TimeZone; false

otherwise.

ICU 2.0

Defined at line 550 of file ../../third_party/icu/default/source/i18n/unicode/timezone.h

void ~TimeZone ()

ICU 2.0

const TimeZone & getUnknown ()

Returns the "unknown" time zone.

It behaves like the GMT/UTC time zone but has the

UCAL_UNKNOWN_ZONE_ID

= "Etc/Unknown".

createTimeZone() returns a mutable clone of this time zone if the input ID is not recognized.

Returns

the "unknown" time zone.

const TimeZone * getGMT ()

The GMT (=UTC) time zone has a raw offset of zero and does not use daylight

savings time. This is a commonly used time zone.

Note: For backward compatibility reason, the ID used by the time

zone returned by this method is "GMT", although the ICU's canonical

ID for the GMT time zone is "Etc/GMT".

Returns

the GMT/UTC time zone.

TimeZone * createTimeZone (const UnicodeString & ID)

Creates a

TimeZone

for the given ID.

Parameters

ID the ID for a TimeZone, such as "America/Los_Angeles", or a custom ID such as "GMT-8:00".

Returns

the specified

TimeZone

, or a mutable clone of getUnknown()

if the given ID cannot be understood or if the given ID is "Etc/Unknown".

The return result is guaranteed to be non-nullptr.

If you require that the specific zone asked for be returned,

compare the result with getUnknown() or check the ID of the return result.

ICU 2.0

StringEnumeration * createTimeZoneIDEnumeration (USystemTimeZoneType zoneType, const char * region, const int32_t * rawOffset, UErrorCode & ec)

Returns an enumeration over system time zone IDs with the given

filter conditions.

Parameters

zoneType The system time zone type.
region The ISO 3166 two-letter country code or UN M.49 three-digit area code. When nullptr, no filtering done by region.
rawOffset An offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any. When nullptr, no filtering done by zone offset.
ec Output param to filled in with a success or an error.

Returns

an enumeration object, owned by the caller.

ICU 4.8

StringEnumeration * createEnumeration ()

Returns an enumeration over all recognized time zone IDs. (i.e.,

all strings that createTimeZone() accepts)

Returns

an enumeration object, owned by the caller.

StringEnumeration * createEnumeration (UErrorCode & status)

Returns an enumeration over all recognized time zone IDs. (i.e.,

all strings that createTimeZone() accepts)

Parameters

status Receives the status.

Returns

an enumeration object, owned by the caller.

ICU 70

StringEnumeration * createEnumeration (int32_t rawOffset)

Returns an enumeration over time zone IDs with a given raw

offset from GMT. There may be several times zones with the

same GMT offset that differ in the way they handle daylight

savings time. For example, the state of Arizona doesn't

observe daylight savings time. If you ask for the time zone

IDs corresponding to GMT-7:00, you'll get back an enumeration

over two time zone IDs: "America/Denver," which corresponds to

Mountain Standard Time in the winter and Mountain Daylight Time

in the summer, and "America/Phoenix", which corresponds to

Mountain Standard Time year-round, even in the summer.

Parameters

rawOffset an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any

Returns

an enumeration object, owned by the caller

StringEnumeration * createEnumerationForRawOffset (int32_t rawOffset, UErrorCode & status)

Returns an enumeration over time zone IDs with a given raw

offset from GMT. There may be several times zones with the

same GMT offset that differ in the way they handle daylight

savings time. For example, the state of Arizona doesn't

observe daylight savings time. If you ask for the time zone

IDs corresponding to GMT-7:00, you'll get back an enumeration

over two time zone IDs: "America/Denver," which corresponds to

Mountain Standard Time in the winter and Mountain Daylight Time

in the summer, and "America/Phoenix", which corresponds to

Mountain Standard Time year-round, even in the summer.

Parameters

rawOffset an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any
status Receives the status.

Returns

an enumeration object, owned by the caller

ICU 70

StringEnumeration * createEnumeration (const char * region)

Returns an enumeration over time zone IDs associated with the

given region. Some zones are affiliated with no region

(e.g., "UTC"); these may also be retrieved, as a group.

Parameters

region The ISO 3166 two-letter country code, or nullptr to retrieve zones not affiliated with any region.

Returns

an enumeration object, owned by the caller

StringEnumeration * createEnumerationForRegion (const char * region, UErrorCode & status)

Returns an enumeration over time zone IDs associated with the

given region. Some zones are affiliated with no region

(e.g., "UTC"); these may also be retrieved, as a group.

Parameters

region The ISO 3166 two-letter country code, or nullptr to retrieve zones not affiliated with any region.
status Receives the status.

Returns

an enumeration object, owned by the caller

ICU 70

int32_t countEquivalentIDs (const UnicodeString & id)

Returns the number of IDs in the equivalency group that

includes the given ID. An equivalency group contains zones

that have the same GMT offset and rules.

The returned count includes the given ID; it is always >= 1.

The given ID must be a system time zone. If it is not, returns

zero.

Parameters

id a system time zone ID

Returns

the number of zones in the equivalency group containing

'id', or zero if 'id' is not a valid system ID

UnicodeString getEquivalentID (const UnicodeString & id, int32_t index)

Returns an ID in the equivalency group that

includes the given ID. An equivalency group contains zones

that have the same GMT offset and rules.

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 ID
index a value from 0 to n-1, where n is the value returned by countEquivalentIDs(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

TimeZone * detectHostTimeZone ()

Creates an instance of TimeZone detected from the current host

system configuration. If the host system detection routines fail,

or if they specify a TimeZone or TimeZone offset which is not

recognized, then the special TimeZone "Etc/Unknown" is returned.

Note that ICU4C does not change the default time zone unless

`TimeZone::adoptDefault(TimeZone*)` or

`TimeZone::setDefault(const TimeZone

&

)` is explicitly called by a

user. This method does not update the current ICU's default,

and may return a different TimeZone from the one returned by

`TimeZone::createDefault()`.

This function is not thread safe.

Returns

A new instance of TimeZone detected from the current host system

configuration.

TimeZone * createDefault ()

Creates a new copy of the default TimeZone for this host. Unless the default time

zone has already been set using adoptDefault() or setDefault(), the default is

determined by querying the host system configuration. If the host system detection

routines fail, or if they specify a TimeZone or TimeZone offset which is not

recognized, then the special TimeZone "Etc/Unknown" is instantiated and made the

default.

Returns

A default TimeZone. Clients are responsible for deleting the time zone

object returned.

TimeZone * forLocaleOrDefault (const Locale & locale)

If the locale contains the timezone keyword, creates a copy of that TimeZone.

Otherwise, create the default timezone.

Parameters

locale a locale which may contains 'timezone' keyword/value.

Returns

A TimeZone. Clients are responsible for deleting the time zone

object returned.

void adoptDefault (TimeZone * zone)

Sets the default time zone (i.e., what's returned by createDefault()) to be the

specified time zone. If nullptr is specified for the time zone, the default time

zone is set to the default host time zone. This call adopts the TimeZone object

passed in; the client is no longer responsible for deleting it.

Parameters

zone A pointer to the new TimeZone object to use as the default. ICU 2.0
void setDefault (const TimeZone & zone)

Same as adoptDefault(), except that the TimeZone object passed in is NOT adopted;

the caller remains responsible for deleting it.

Parameters

zone The given timezone. ICU 2.0
const char * getTZDataVersion (UErrorCode & status)

Returns the timezone data version currently used by ICU.

Parameters

status Output param to filled in with a success or an error.

Returns

the version string, such as "2007f"

ICU 3.8

UnicodeString & getCanonicalID (const UnicodeString & id, UnicodeString & canonicalID, UErrorCode & status)

Returns the canonical system timezone ID or the normalized

custom time zone ID for the given time zone ID.

Parameters

id The input time zone ID to be canonicalized.
canonicalID Receives the canonical system time zone ID or the custom time zone ID in normalized format.
status Receives the status. When the given time zone ID is neither a known system time zone ID nor a valid custom time zone ID, U_ILLEGAL_ARGUMENT_ERROR is set.

Returns

A reference to the result.

ICU 4.0

UnicodeString & getCanonicalID (const UnicodeString & id, UnicodeString & canonicalID, UBool & isSystemID, UErrorCode & status)

Returns the canonical system time zone ID or the normalized

custom time zone ID for the given time zone ID.

Parameters

id The input time zone ID to be canonicalized.
canonicalID Receives the canonical system time zone ID or the custom time zone ID in normalized format.
isSystemID Receives if the given ID is a known system time zone ID.
status Receives the status. When the given time zone ID is neither a known system time zone ID nor a valid custom time zone ID, U_ILLEGAL_ARGUMENT_ERROR is set.

Returns

A reference to the result.

ICU 4.0

UnicodeString & getIanaID (const UnicodeString & id, UnicodeString & ianaID, UErrorCode & status)

Returns the preferred time zone ID in the IANA time zone database for the given time zone ID.

There are two types of preferred IDs. The first type is the one defined in zone.tab file,

such as "America/Los_Angeles". The second types is the one defined for zones not associated

with a specific region, but not defined with "Link" syntax such as "Etc/GMT+10".

Note: For most of valid time zone IDs, this method returns an ID same as getCanonicalID().

getCanonicalID() is based on canonical time zone IDs defined in Unicode CLDR.

These canonical time zone IDs in CLDR were based on very old version of the time zone database.

In the IANA time zone database, some IDs were updated since then. This API returns a newer

time zone ID. For example, CLDR defines "Asia/Calcutta" as the canonical time zone ID. This

method returns "Asia/Kolkata" instead.

"Etc/Unknown" is a special time zone ID defined by CLDR. There are no corresponding zones

in the IANA time zone database. Therefore, this API returns U_ILLEGAL_ARGUMENT_ERROR when the

input ID is "Etc/Unknown".

Parameters

id The input time zone ID.
ianaID Receives the preferred time zone ID in the IANA time zone database. When the given time zone ID is not a known time zone ID, this method sets an invalid (bogus) string.
status Receives the status. When the given time zone ID is not a known time zone ID, U_ILLEGAL_ARGUMENT_ERROR is set.

Returns

A reference to the result.

ICU 74

UnicodeString & getWindowsID (const UnicodeString & id, UnicodeString & winid, UErrorCode & status)

Converts a system time zone ID to an equivalent Windows time zone ID. For example,

Windows time zone ID "Pacific Standard Time" is returned for input "America/Los_Angeles".

There are system time zones that cannot be mapped to Windows zones. When the input

system time zone ID is unknown or unmappable to a Windows time zone, then the result will be

empty, but the operation itself remains successful (no error status set on return).

This implementation utilizes

Zone-Tzid mapping data

. The mapping data is updated time to time. To get the latest changes,

please read the ICU user guide section

Updating the Time Zone Data

.

ICU 52

Parameters

id A system time zone ID.
winid Receives a Windows time zone ID. When the input system time zone ID is unknown or unmappable to a Windows time zone ID, then an empty string is set on return.
status Receives the status.

Returns

A reference to the result (

winid

).

UnicodeString & getIDForWindowsID (const UnicodeString & winid, const char * region, UnicodeString & id, UErrorCode & status)

Converts a Windows time zone ID to an equivalent system time zone ID

for a region. For example, system time zone ID "America/Los_Angeles" is returned

for input Windows ID "Pacific Standard Time" and region "US" (or

null

),

"America/Vancouver" is returned for the same Windows ID "Pacific Standard Time" and

region "CA".

Not all Windows time zones can be mapped to system time zones. When the input

Windows time zone ID is unknown or unmappable to a system time zone, then the result

will be empty, but the operation itself remains successful (no error status set on return).

This implementation utilizes

Zone-Tzid mapping data

. The mapping data is updated time to time. To get the latest changes,

please read the ICU user guide section

Updating the Time Zone Data

.

ICU 52

Parameters

winid A Windows time zone ID.
region A NUL-terminated region code, or nullptr if no regional preference.
id Receives a system time zone ID. When the input Windows time zone ID is unknown or unmappable to a system time zone ID, then an empty string is set on return.
status Receives the status.

Returns

A reference to the result (

id

).

bool operator== (const TimeZone & that)

Returns true if the two TimeZones are equal. (The TimeZone version only compares

IDs, but subclasses are expected to also compare the fields they add.)

Parameters

that The TimeZone object to be compared with.

Returns

true if the given TimeZone is equal to this TimeZone; false

otherwise.

ICU 2.0

int32_t getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, UErrorCode & status)

Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add

to GMT to get local time in this time zone, taking daylight savings time into

account) as of a particular reference date. The reference date is used to determine

whether daylight savings time is in effect and needs to be figured into the offset

that is returned (in other words, what is the adjusted GMT offset in this time zone

at this particular date and time?). For the time zones produced by createTimeZone(),

the reference data is specified according to the Gregorian calendar, and the date

and time fields are local standard time.

Note: Don't call this method. Instead, call the getOffset(UDate...) overload,

which returns both the raw and the DST offset for a given time. This method

is retained only for backward compatibility.

Parameters

era The reference date's era
year The reference date's year
month The reference date's month (0-based; 0 is January)
day The reference date's day-in-month (1-based)
dayOfWeek The reference date's day-of-week (1-based; 1 is Sunday)
millis The reference date's milliseconds in day, local standard time
status Output param to filled in with a success or an error.

Returns

The offset in milliseconds to add to GMT to get local time.

ICU 2.0

int32_t getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, int32_t monthLength, UErrorCode & status)

Gets the time zone offset, for current date, modified in case of

daylight savings. This is the offset to add *to* UTC to get local time.

Note: Don't call this method. Instead, call the getOffset(UDate...) overload,

which returns both the raw and the DST offset for a given time. This method

is retained only for backward compatibility.

Parameters

era the era of the given date.
year the year in the given date.
month the month in the given date. Month is 0-based. e.g., 0 for January.
day the day-in-month of the given date.
dayOfWeek the day-of-week of the given date.
milliseconds the millis in day in standard local time.
monthLength the length of the given month in days.
status Output param to filled in with a success or an error.

Returns

the offset to add *to* GMT to get local time.

ICU 2.0

void getOffset (UDate date, UBool local, int32_t & rawOffset, int32_t & dstOffset, UErrorCode & ec)

Returns the time zone raw and GMT offset for the given moment

in time. Upon return, local-millis = GMT-millis + rawOffset +

dstOffset. All computations are performed in the proleptic

Gregorian calendar. The default implementation in the TimeZone

class delegates to the 8-argument getOffset().

ICU 2.8

Parameters

date moment in time for which to return offsets, in units of milliseconds from January 1, 1970 0:00 GMT, either GMT time or local wall time, depending on `local'.
local if true, `date' is local wall time; otherwise it is in GMT time.
rawOffset output parameter to receive the raw offset, that is, the offset not including DST adjustments
dstOffset output parameter to receive the DST offset, that is, the offset to be added to `rawOffset' to obtain the total offset between local and GMT time. If DST is not in effect, this value is zero; otherwise it is a positive value, typically one hour.
ec input-output error code
void setRawOffset (int32_t offsetMillis)

Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add

to GMT to get local time, before taking daylight savings time into account).

Parameters

offsetMillis The new raw GMT offset for this time zone. ICU 2.0
int32_t getRawOffset ()

Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add

to GMT to get local time, before taking daylight savings time into account).

Returns

The TimeZone's raw GMT offset.

ICU 2.0

UnicodeString & getID (UnicodeString & ID)

-------------------------------------

Defined at line 1046 of file ../../third_party/icu/default/source/i18n/unicode/timezone.h

void setID (const UnicodeString & ID)

-------------------------------------

Defined at line 1055 of file ../../third_party/icu/default/source/i18n/unicode/timezone.h

UnicodeString & getDisplayName (UnicodeString & result)

Returns a name of this time zone suitable for presentation to the user

in the default locale.

This method returns the long name, not including daylight savings.

If the display name is not available for the locale,

then this method returns a string in the localized GMT offset format

such as

GMT[+-]HH:mm

.

Parameters

result the human-readable name of this time zone in the default locale.

Returns

A reference to 'result'.

ICU 2.0

UnicodeString & getDisplayName (const Locale & locale, UnicodeString & result)

Returns a name of this time zone suitable for presentation to the user

in the specified locale.

This method returns the long name, not including daylight savings.

If the display name is not available for the locale,

then this method returns a string in the localized GMT offset format

such as

GMT[+-]HH:mm

.

Parameters

locale the locale in which to supply the display name.
result the human-readable name of this time zone in the given locale or in the default locale if the given locale is not recognized.

Returns

A reference to 'result'.

ICU 2.0

UnicodeString & getDisplayName (UBool inDaylight, EDisplayType style, UnicodeString & result)

Returns a name of this time zone suitable for presentation to the user

in the default locale.

If the display name is not available for the locale,

then this method returns a string in the localized GMT offset format

such as

GMT[+-]HH:mm

.

Parameters

inDaylight if true, return the daylight savings name.
result the human-readable name of this time zone in the default locale.

Returns

A reference to 'result'.

ICU 2.0

UnicodeString & getDisplayName (UBool inDaylight, EDisplayType style, const Locale & locale, UnicodeString & result)

Returns a name of this time zone suitable for presentation to the user

in the specified locale.

If the display name is not available for the locale,

then this method returns a string in the localized GMT offset format

such as

GMT[+-]HH:mm

.

Parameters

inDaylight if true, return the daylight savings name.
locale the locale in which to supply the display name.
result the human-readable name of this time zone in the given locale or in the default locale if the given locale is not recognized.

Returns

A reference to 'result'.

ICU 2.0

UBool useDaylightTime ()

Queries if this time zone uses daylight savings time.

ICU 2.0

Returns

true if this time zone uses daylight savings time,

false, otherwise.

Note:

The default implementation of

ICU TimeZone uses the tz database, which supports historic

rule changes, for system time zones. With the implementation,

there are time zones that used daylight savings time in the

past, but no longer used currently. For example, Asia/Tokyo has

never used daylight savings time since 1951. Most clients would

expect that this method to return

false

for such case.

The default implementation of this method returns

true

when the time zone uses daylight savings time in the current

(Gregorian) calendar year.

In Java 7,

observesDaylightTime()

was added in

addition to

useDaylightTime()

. In Java,

useDaylightTime()

only checks if daylight saving time is observed by the last known

rule. This specification might not be what most users would expect

if daylight saving time is currently observed, but not scheduled

in future. In this case, Java's

userDaylightTime()

returns

false

. To resolve the issue, Java 7 added

observesDaylightTime()

,

which takes the current rule into account. The method

observesDaylightTime()

was added in ICU4J for supporting API signature compatibility with JDK.

In general, ICU4C also provides JDK compatible methods, but the current

implementation

userDaylightTime()

serves the purpose

(takes the current rule into account),

observesDaylightTime()

is not added in ICU4C. In addition to

useDaylightTime()

, ICU4C

BasicTimeZone

class (Note that

TimeZone::createTimeZone(const UnicodeString

&ID

)

always returns a

BasicTimeZone

) provides a series of methods allowing

historic and future time zone rule iteration, so you can check if daylight saving

time is observed or not within a given period.

UBool inDaylightTime (UDate date, UErrorCode & status)

Queries if the given date is in daylight savings time in

this time zone.

This method is wasteful since it creates a new GregorianCalendar and

deletes it each time it is called. This is a deprecated method

and provided only for Java compatibility.

Parameters

date the given UDate.
status Output param filled in with success/error code.

Returns

true if the given date is in daylight savings time,

false, otherwise.

UBool hasSameRules (const TimeZone & other)

Returns true if this zone has the same rule and offset as another zone.

That is, if this zone differs only in ID, if at all.

Parameters

other the TimeZone object to be compared with

Returns

true if the given zone is the same as this one,

with the possible exception of the ID

ICU 2.0

TimeZone * clone ()

Clones TimeZone objects polymorphically. Clients are responsible for deleting

the TimeZone object cloned.

Returns

A new copy of this TimeZone object.

ICU 2.0

UClassID getStaticClassID ()

Return the class ID for this class. This is useful only for

comparing to a return value from getDynamicClassID().

Returns

The class ID for all objects of this class.

ICU 2.0

UClassID getDynamicClassID ()

Returns a unique class ID POLYMORPHICALLY. This method is to

implement a simple version of RTTI, since not all C++ compilers support genuine

RTTI. Polymorphic operator==() and clone() methods call this method.

<P

>

Concrete subclasses of TimeZone must use the UOBJECT_DEFINE_RTTI_IMPLEMENTATION

macro from uobject.h in their implementation to provide correct RTTI information.

Returns

The class ID for this object. All objects of a given class have the

same class ID. Objects of other classes have different class IDs.

ICU 2.0

int32_t getDSTSavings ()

Returns the amount of time to be added to local standard time

to get local wall clock time.

The default implementation always returns 3600000 milliseconds

(i.e., one hour) if this time zone observes Daylight Saving

Time. Otherwise, 0 (zero) is returned.

If an underlying TimeZone implementation subclass supports

historical Daylight Saving Time changes, this method returns

the known latest daylight saving value.

Returns

the amount of saving time in milliseconds

ICU 3.6

int32_t getRegion (const UnicodeString & id, char * region, int32_t capacity, UErrorCode & status)

Gets the region code associated with the given

system time zone ID. The region code is either ISO 3166

2-letter country code or UN M.49 3-digit area code.

When the time zone is not associated with a specific location,

for example - "Etc/UTC", "EST5EDT", then this method returns

"001" (UN M.49 area code for World).

Parameters

id The system time zone ID.
region Output buffer for receiving the region code.
capacity The size of the output buffer.
status Receives the status. When the given time zone ID is not a known system time zone ID, U_ILLEGAL_ARGUMENT_ERROR is set.

Returns

The length of the output region code.

ICU 4.8

const char16_t * getRegion (const UnicodeString & id, UErrorCode & status)

Returns the region code associated with the given zone,

or nullptr if the zone is not known.

Parameters

id zone id string
status Status parameter

Returns

the region associated with the given zone

Protected Methods

void TimeZone ()

Default constructor. ID is initialized to the empty string.

ICU 2.0

void TimeZone (const UnicodeString & id)

Construct a TimeZone with a given ID.

Parameters

id a system time zone ID ICU 2.0
void TimeZone (const TimeZone & source)

Copy constructor.

Parameters

source the object to be copied. ICU 2.0
TimeZone & operator= (const TimeZone & right)

Default assignment operator.

Parameters

right the object to be copied. ICU 2.0
UResourceBundle * loadRule (const UResourceBundle * top, const UnicodeString & ruleid, UResourceBundle * oldbundle, UErrorCode & status)

Utility function. For internally loading rule data.

Parameters

top Top resource bundle for tz data
ruleid ID of rule to load
oldbundle Old bundle to reuse or nullptr
status Status parameter

Returns

either a new bundle or *oldbundle

Enumerations

enum EDisplayType
Name Value
SHORT 1
LONG 2
SHORT_GENERIC 3
LONG_GENERIC 4
SHORT_GMT 5
LONG_GMT 6
SHORT_COMMONLY_USED 7
GENERIC_LOCATION 8

Enum for use with getDisplayName

ICU 2.4

Defined at line 675 of file ../../third_party/icu/default/source/i18n/unicode/timezone.h

Friends

class TZEnumeration
class ZoneMeta