TimeZone represents a time zone offset, and also figures out daylight savings.More...
#include <timezone.h>

Public Types | |
| enum | EDisplayType { SHORT = 1,LONG,SHORT_GENERIC,LONG_GENERIC, SHORT_GMT,LONG_GMT,SHORT_COMMONLY_USED,GENERIC_LOCATION } |
| Enum for use with getDisplayName.More... | |
Public Member Functions | |
| virtual | ~TimeZone () |
| virtual bool | operator== (constTimeZone &that) const |
| Returns true if the two TimeZones are equal.More... | |
| bool | operator!= (constTimeZone &that) const |
| Returns true if the two TimeZones are NOT equal; that is, ifoperator==() returns false.More... | |
| virtual int32_t | getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis,UErrorCode &status) const =0 |
| Returns theTimeZone'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.More... | |
| virtual 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) const =0 |
| Gets the time zone offset, for current date, modified in case of daylight savings.More... | |
| virtual void | getOffset (UDate date,UBool local, int32_t &rawOffset, int32_t &dstOffset,UErrorCode &ec) const |
| Returns the time zone raw and GMT offset for the given moment in time.More... | |
| virtual void | setRawOffset (int32_t offsetMillis)=0 |
| Sets theTimeZone'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).More... | |
| virtual int32_t | getRawOffset () const =0 |
| Returns theTimeZone'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).More... | |
| UnicodeString & | getID (UnicodeString &ID) const |
| Fills in "ID" with theTimeZone's ID.More... | |
| void | setID (constUnicodeString &ID) |
| Sets theTimeZone's ID to the specified value.More... | |
| UnicodeString & | getDisplayName (UnicodeString &result) const |
| Returns a name of this time zone suitable for presentation to the user in the default locale.More... | |
| UnicodeString & | getDisplayName (constLocale &locale,UnicodeString &result) const |
| Returns a name of this time zone suitable for presentation to the user in the specified locale.More... | |
| UnicodeString & | getDisplayName (UBool inDaylight,EDisplayType style,UnicodeString &result) const |
| Returns a name of this time zone suitable for presentation to the user in the default locale.More... | |
| UnicodeString & | getDisplayName (UBool inDaylight,EDisplayType style, constLocale &locale,UnicodeString &result) const |
| Returns a name of this time zone suitable for presentation to the user in the specified locale.More... | |
| virtualUBool | useDaylightTime () const =0 |
| Queries if this time zone uses daylight savings time.More... | |
| virtualUBool | inDaylightTime (UDate date,UErrorCode &status) const =0 |
| Queries if the given date is in daylight savings time in this time zone.More... | |
| virtualUBool | hasSameRules (constTimeZone &other) const |
| Returns true if this zone has the same rule and offset as another zone.More... | |
| virtualTimeZone * | clone () const =0 |
| ClonesTimeZone objects polymorphically.More... | |
| virtualUClassID | getDynamicClassID () const override=0 |
| Returns a unique class ID POLYMORPHICALLY.More... | |
| virtual int32_t | getDSTSavings () const |
| Returns the amount of time to be added to local standard time to get local wall clock time.More... | |
Public Member Functions inherited fromicu::UObject | |
| virtual | ~UObject () |
| Destructor.More... | |
Static Public Member Functions | |
| static constTimeZone & | getUnknown () |
| Returns the "unknown" time zone.More... | |
| static constTimeZone * | getGMT () |
| The GMT (=UTC) time zone has a raw offset of zero and does not use daylight savings time.More... | |
| staticTimeZone * | createTimeZone (constUnicodeString &ID) |
Creates aTimeZone for the given ID.More... | |
| staticStringEnumeration * | 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.More... | |
| staticStringEnumeration * | createEnumeration () |
| Returns an enumeration over all recognized time zone IDs.More... | |
| staticStringEnumeration * | createEnumeration (UErrorCode &status) |
| Returns an enumeration over all recognized time zone IDs.More... | |
| staticStringEnumeration * | createEnumeration (int32_t rawOffset) |
| Returns an enumeration over time zone IDs with a given raw offset from GMT.More... | |
| staticStringEnumeration * | createEnumerationForRawOffset (int32_t rawOffset,UErrorCode &status) |
| Returns an enumeration over time zone IDs with a given raw offset from GMT.More... | |
| staticStringEnumeration * | createEnumeration (const char *region) |
| Returns an enumeration over time zone IDs associated with the given region.More... | |
| staticStringEnumeration * | createEnumerationForRegion (const char *region,UErrorCode &status) |
| Returns an enumeration over time zone IDs associated with the given region.More... | |
| static int32_t | countEquivalentIDs (constUnicodeString &id) |
| Returns the number of IDs in the equivalency group that includes the given ID.More... | |
| staticUnicodeString | getEquivalentID (constUnicodeString &id, int32_t index) |
| Returns an ID in the equivalency group that includes the given ID.More... | |
| staticTimeZone * | detectHostTimeZone () |
| Creates an instance ofTimeZone detected from the current host system configuration.More... | |
| staticTimeZone * | createDefault () |
| Creates a new copy of the defaultTimeZone for this host.More... | |
| staticTimeZone * | forLocaleOrDefault (constLocale &locale) |
| If the locale contains the timezone keyword, creates a copy of thatTimeZone.More... | |
| static void | adoptDefault (TimeZone *zone) |
| Sets the default time zone (i.e., what's returned bycreateDefault()) to be the specified time zone.More... | |
| static void | setDefault (constTimeZone &zone) |
| Same asadoptDefault(), except that theTimeZone object passed in is NOT adopted; the caller remains responsible for deleting it.More... | |
| static const char * | getTZDataVersion (UErrorCode &status) |
| Returns the timezone data version currently used by ICU.More... | |
| staticUnicodeString & | getCanonicalID (constUnicodeString &id,UnicodeString &canonicalID,UErrorCode &status) |
| Returns the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID.More... | |
| staticUnicodeString & | getCanonicalID (constUnicodeString &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.More... | |
| staticUnicodeString & | getIanaID (constUnicodeString &id,UnicodeString &ianaID,UErrorCode &status) |
| Returns the preferred time zone ID in the IANA time zone database for the given time zone ID.More... | |
| staticUnicodeString & | getWindowsID (constUnicodeString &id,UnicodeString &winid,UErrorCode &status) |
| Converts a system time zone ID to an equivalent Windows time zone ID.More... | |
| staticUnicodeString & | getIDForWindowsID (constUnicodeString &winid, const char *region,UnicodeString &id,UErrorCode &status) |
| Converts a Windows time zone ID to an equivalent system time zone ID for a region.More... | |
| staticUClassID | getStaticClassID () |
| Return the class ID for this class.More... | |
| static int32_t | getRegion (constUnicodeString &id, char *region, int32_t capacity,UErrorCode &status) |
| Gets the region code associated with the given system time zone ID.More... | |
| static const char16_t * | getRegion (constUnicodeString &id,UErrorCode &status) |
| Returns the region code associated with the given zone, or nullptr if the zone is not known.More... | |
Protected Member Functions | |
| TimeZone () | |
| Default constructor.More... | |
| TimeZone (constUnicodeString &id) | |
| Construct aTimeZone with a given ID.More... | |
| TimeZone (constTimeZone &source) | |
| Copy constructor.More... | |
| TimeZone & | operator= (constTimeZone &right) |
| Default assignment operator.More... | |
Static Protected Member Functions | |
| staticUResourceBundle * | loadRule (constUResourceBundle *top, constUnicodeString &ruleid,UResourceBundle *oldbundle,UErrorCode &status) |
| Utility function.More... | |
Friends | |
| class | ZoneMeta |
| class | TZEnumeration |
TimeZone represents a time zone offset, and also figures out daylight savings.
Typically, you get aTimeZone usingcreateDefault which creates aTimeZone based on the time zone where the program is running. For example, for a program running in Japan,createDefault creates aTimeZone object based on Japanese Standard Time.
You can also get aTimeZone usingcreateTimeZone 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 TimeTimeZone object with:
You can use theTimeZone *tz =TimeZone::createTimeZone("America/Los_Angeles");
createEnumeration method to iterate through all the supported time zone IDs, or thegetCanonicalID method to check if a time zone ID is supported or not. You can then choose a supported ID to get aTimeZone. 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. TheTimeZone 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 aTimeZone 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. ATimeZone is needed forCalendar to produce local time for a particular time zone. ATimeZone comprises three basic pieces of information:
(Only the ID is actually implemented inTimeZone; subclasses ofTimeZone may handle daylight savings time and GMT offset in different ways. Currently we have the followingTimeZone subclasses:RuleBasedTimeZone,SimpleTimeZone, andVTimeZone.)
TheTimeZone class contains a static list containing aTimeZone 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.
To create a newTimeZone, you call the factory functionTimeZone::createTimeZone() and pass it a time zone ID. You can use thecreateEnumeration() function to obtain a list of all the time zone IDs recognized bycreateTimeZone().
You can also useTimeZone::createDefault() to create aTimeZone. This function uses platform-specific APIs to produce aTimeZone 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 aTimeZone for Japanese Standard Time ("Asia/Tokyo").
Definition at line133 of filetimezone.h.
Enum for use with getDisplayName.
| Enumerator | |
|---|---|
| SHORT | Selector for short display name.
|
| LONG | Selector for long display name.
|
| SHORT_GENERIC | Selector for short generic display name.
|
| LONG_GENERIC | Selector for long generic display name.
|
| SHORT_GMT | Selector for short display name derived from time zone offset.
|
| LONG_GMT | Selector for long display name derived from time zone offset.
|
| SHORT_COMMONLY_USED | Selector for short display name derived from the time zone's fallback name.
|
| GENERIC_LOCATION | Selector for long display name derived from the time zone's fallback name.
|
Definition at line675 of filetimezone.h.
| virtual |
| protected |
| protected |
| protected |
| static |
Sets the default time zone (i.e., what's returned bycreateDefault()) 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 theTimeZone object passed in; the client is no longer responsible for deleting it.
| zone | A pointer to the newTimeZone object to use as the default. |
| pure virtual |
ClonesTimeZone objects polymorphically.
Clients are responsible for deleting theTimeZone object cloned.
Implemented inicu::BasicTimeZone,icu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| static |
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.
| id | a system time zone ID |
| static |
Creates a new copy of the defaultTimeZone for this host.
Unless the default time zone has already been set usingadoptDefault() orsetDefault(), the default is determined by querying the host system configuration. If the host system detection routines fail, or if they specify aTimeZone orTimeZone offset which is not recognized, then the specialTimeZone "Etc/Unknown" is instantiated and made the default.
| static |
Returns an enumeration over all recognized time zone IDs.
(i.e., all strings thatcreateTimeZone() accepts)
| static |
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.
| region | The ISO 3166 two-letter country code, or nullptr to retrieve zones not affiliated with any region. |
| static |
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.
| rawOffset | an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any |
| static |
Returns an enumeration over all recognized time zone IDs.
(i.e., all strings thatcreateTimeZone() accepts)
| status | Receives the status. |
| static |
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.
| rawOffset | an offset from GMT in milliseconds, ignoring the effect of daylight savings time, if any |
| status | Receives the status. |
| static |
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.
| region | The ISO 3166 two-letter country code, or nullptr to retrieve zones not affiliated with any region. |
| status | Receives the status. |
| static |
Creates aTimeZone for the given ID.
| ID | the ID for aTimeZone, such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". |
TimeZone, or a mutable clone ofgetUnknown() 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 withgetUnknown() or check the ID of the return result.
| static |
Returns an enumeration over system time zone IDs with the given filter conditions.
| 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. |
| static |
Creates an instance ofTimeZone detected from the current host system configuration.
If the host system detection routines fail, or if they specify aTimeZone orTimeZone offset which is not recognized, then the specialTimeZone "Etc/Unknown" is returned.
Note that ICU4C does not change the default time zone unlessTimeZone::adoptDefault(TimeZone*) orTimeZone::setDefault(const TimeZone&) is explicitly called by a user. This method does not update the current ICU's default, and may return a differentTimeZone from the one returned byTimeZone::createDefault().
This function is not thread safe.
If the locale contains the timezone keyword, creates a copy of thatTimeZone.
Otherwise, create the default timezone.
| locale | a locale which may contains 'timezone' keyword/value. |
| static |
Returns the canonical system time zone ID or the normalized custom time zone ID for the given time zone ID.
| 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. |
| static |
Returns the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID.
| 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. |
| UnicodeString& icu::TimeZone::getDisplayName | ( | constLocale & | locale, |
| UnicodeString & | result | ||
| ) | const |
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 asGMT[+-]HH:mm.
| 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. |
| UnicodeString& icu::TimeZone::getDisplayName | ( | UBool | inDaylight, |
| EDisplayType | style, | ||
| constLocale & | locale, | ||
| UnicodeString & | result | ||
| ) | const |
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 asGMT[+-]HH:mm.
| inDaylight | if true, return the daylight savings name. |
| style | |
| 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. |
| UnicodeString& icu::TimeZone::getDisplayName | ( | UBool | inDaylight, |
| EDisplayType | style, | ||
| UnicodeString & | result | ||
| ) | const |
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 asGMT[+-]HH:mm.
| inDaylight | if true, return the daylight savings name. |
| style | |
| result | the human-readable name of this time zone in the default locale. |
| UnicodeString& icu::TimeZone::getDisplayName | ( | UnicodeString & | result | ) | const |
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 asGMT[+-]HH:mm.
| result | the human-readable name of this time zone in the default locale. |
| virtual |
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 underlyingTimeZone implementation subclass supports historical Daylight Saving Time changes, this method returns the known latest daylight saving value.
Reimplemented inicu::SimpleTimeZone.
| overridepure virtual |
Returns a unique class ID POLYMORPHICALLY.
This method is to implement a simple version of RTTI, since not all C++ compilers support genuine RTTI. Polymorphicoperator==() andclone() methods call this method.
Concrete subclasses ofTimeZone must use the UOBJECT_DEFINE_RTTI_IMPLEMENTATION macro fromuobject.h in their implementation to provide correct RTTI information.
Reimplemented fromicu::UObject.
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| static |
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 bycountEquivalentIDs(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.
| id | a system time zone ID |
| index | a value from 0 to n-1, where n is the value returned bycountEquivalentIDs(id) |
| static |
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".
| static |
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 asgetCanonicalID().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".
| 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. |
| inline |
Fills in "ID" with theTimeZone's ID.
| ID | Receives thisTimeZone's ID. |
Definition at line1047 of filetimezone.h.
| static |
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" (ornull), "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 utilizesZone-Tzid mapping data. The mapping data is updated time to time. To get the latest changes, please read the ICU user guide sectionUpdating the Time Zone Data.
| winid | A Windows time zone ID. |
| region | A NUL-terminated region code, ornullptr 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. |
id).
| virtual |
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 theTimeZone class delegates to the 8-argumentgetOffset().
| 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 |
Reimplemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| pure virtual |
Returns theTimeZone'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 bycreateTimeZone(), 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.
| 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. |
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| pure virtual |
Gets the time zone offset, for current date, modified in case of daylight savings.
This is the offset to addto 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.
| 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 instandard local time. |
| monthLength | the length of the given month in days. |
| status | Output param to filled in with a success or an error. |
Implemented inicu::SimpleTimeZone,icu::VTimeZone, andicu::RuleBasedTimeZone.
| pure virtual |
Returns theTimeZone'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).
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| static |
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).
| 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. |
| static |
Returns the region code associated with the given zone, or nullptr if the zone is not known.
| id | zone id string |
| status | Status parameter |
| static |
Return the class ID for this class.
This is useful only for comparing to a return value fromgetDynamicClassID().
| static |
Returns the timezone data version currently used by ICU.
| status | Output param to filled in with a success or an error. |
| static |
Returns the "unknown" time zone.
It behaves like the GMT/UTC time zone but has theUCAL_UNKNOWN_ZONE_ID = "Etc/Unknown".createTimeZone() returns a mutable clone of this time zone if the input ID is not recognized.
| static |
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 utilizesZone-Tzid mapping data. The mapping data is updated time to time. To get the latest changes, please read the ICU user guide sectionUpdating the Time Zone Data.
| 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. |
winid).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.
| other | theTimeZone object to be compared with |
Reimplemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| pure virtual |
Queries if the given date is in daylight savings time in this time zone.
This method is wasteful since it creates a newGregorianCalendar and deletes it each time it is called. This is a deprecated method and provided only for Java compatibility.
| date | the given UDate. |
| status | Output param filled in with success/error code. |
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| staticprotected |
Utility function.
For internally loading rule data.
| top | Top resource bundle for tz data |
| ruleid | ID of rule to load |
| oldbundle | Old bundle to reuse or nullptr |
| status | Status parameter |
| inline |
Returns true if the two TimeZones are NOT equal; that is, ifoperator==() returns false.
| that | TheTimeZone object to be compared with. |
Definition at line550 of filetimezone.h.
Referencesicu::operator==().
| virtual |
Returns true if the two TimeZones are equal.
(TheTimeZone version only compares IDs, but subclasses are expected to also compare the fields they add.)
| that | TheTimeZone object to be compared with. |
Reimplemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| static |
Same asadoptDefault(), except that theTimeZone object passed in is NOT adopted; the caller remains responsible for deleting it.
| zone | The given timezone. |
| inline |
Sets theTimeZone's ID to the specified value.
This doesn't affect any other fields (for example, if you say< blockquote>
. TimeZone* foo =TimeZone::createTimeZone("America/New_York");. foo.setID("America/Los_Angeles");
the time zone's GMT offset and daylight-savings rules don't change to those for Los Angeles. They're still those for New York. Only the ID has changed.)
| ID | The new time zone ID. |
Definition at line1056 of filetimezone.h.
| pure virtual |
Sets theTimeZone'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).
| offsetMillis | The new raw GMT offset for this time zone. |
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.
| pure virtual |
Queries if this time zone uses daylight savings time.
Note:The default implementation of ICUTimeZone 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 returnfalse for such case. The default implementation of this method returnstrue when the time zone uses daylight savings time in the current (Gregorian) calendar year.
In Java 7,observesDaylightTime() was added in addition touseDaylightTime(). 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'suserDaylightTime() returnsfalse. To resolve the issue, Java 7 addedobservesDaylightTime(), which takes the current rule into account. The methodobservesDaylightTime() was added in ICU4J for supporting API signature compatibility with JDK. In general, ICU4C also provides JDK compatible methods, but the current implementationuserDaylightTime() serves the purpose (takes the current rule into account),observesDaylightTime() is not added in ICU4C. In addition touseDaylightTime(), ICU4CBasicTimeZone class (Note thatTimeZone::createTimeZone(const UnicodeString &ID) always returns aBasicTimeZone) 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.
Implemented inicu::VTimeZone,icu::SimpleTimeZone, andicu::RuleBasedTimeZone.