ICU 74.2: icu::VTimeZone Class Reference

ICU 74.2 74.2

Public Member Functions | Static Public Member Functions
icu::VTimeZone Class Reference

`VTimeZone` is a class implementing RFC2445 VTIMEZONE. More...

`#include <vtzone.h>`

Inheritance diagram for icu::VTimeZone:

## Public Member Functions
| VTimeZone (const VTimeZone &source)
| Copy constructor.
virtual | ~VTimeZone ()
| Destructor.
VTimeZone & | operator= (const VTimeZone &right)
| Assignment operator.
virtual bool | operator== (const TimeZone &that) const override
| Return true if the given `TimeZone` objects are semantically equal.
virtual bool | operator!= (const TimeZone &that) const
| Return true if the given `TimeZone` objects are semantically unequal.
UBool | getTZURL (UnicodeString &url) const
| Gets the RFC2445 TZURL property value.
void | setTZURL (const UnicodeString &url)
| Sets the RFC2445 TZURL property value.
UBool | getLastModified (UDate &lastModified) const
| Gets the RFC2445 LAST-MODIFIED property value.
void | setLastModified (UDate lastModified)
| Sets the RFC2445 LAST-MODIFIED property value.
void | write (UnicodeString &result, UErrorCode &status) const
| Writes RFC2445 VTIMEZONE data for this time zone.
void | write (UDate start, UnicodeString &result, UErrorCode &status) const
| Writes RFC2445 VTIMEZONE data for this time zone applicable for dates after the specified start time.
void | writeSimple (UDate time, UnicodeString &result, UErrorCode &status) const
| Writes RFC2445 VTIMEZONE data applicable for the specified date.
virtual VTimeZone * | clone () const override
| Clones TimeZone objects polymorphically.
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 override
| 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.
virtual int32_t | getOffset (uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, int32_t monthLength, UErrorCode &status) const override
| Gets the time zone offset, for current date, modified in case of daylight savings.
virtual void | getOffset (UDate date, UBool local, int32_t &rawOffset, int32_t &dstOffset, UErrorCode &ec) const override
| Returns the time zone raw and GMT offset for the given moment in time.
virtual void | getOffsetFromLocal (UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, int32_t &rawOffset, int32_t &dstOffset, UErrorCode &status) const override
| Get time zone offsets from local wall time.
virtual void | setRawOffset (int32_t offsetMillis) override
| 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).
virtual int32_t | getRawOffset (void) const override
| 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).
virtual UBool | useDaylightTime (void) const override
| Queries if this time zone uses daylight savings time.
virtual UBool | inDaylightTime (UDate date, UErrorCode &status) const override
| Queries if the given date is in daylight savings time in this time zone.
virtual UBool | hasSameRules (const TimeZone &other) const override
| Returns true if this zone has the same rule and offset as another zone.
virtual UBool | getNextTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const override
| Gets the first time zone transition after the base time.
virtual UBool | getPreviousTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const override
| Gets the most recent time zone transition before the base time.
virtual int32_t | countTransitionRules (UErrorCode &status) const override
| Returns the number of `TimeZoneRule`s which represents time transitions, for this time zone, that is, all `TimeZoneRule`s for this time zone except `InitialTimeZoneRule`.
virtual void | getTimeZoneRules (const InitialTimeZoneRule *&initial, const TimeZoneRule *trsrules[], int32_t &trscount, UErrorCode &status) const override
| Gets the `InitialTimeZoneRule` and the set of `TimeZoneRule` which represent time transitions for this time zone.
virtual UClassID | getDynamicClassID (void) const override
| Returns a unique class ID POLYMORPHICALLY.
Public Member Functions inherited from icu::BasicTimeZone
virtual | ~BasicTimeZone ()
| Destructor.
virtual BasicTimeZone * | clone () const override=0
| Clones this object polymorphically.
virtual UBool | getNextTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const =0
| Gets the first time zone transition after the base time.
virtual UBool | getPreviousTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const =0
| Gets the most recent time zone transition before the base time.
virtual UBool | hasEquivalentTransitions (const BasicTimeZone &tz, UDate start, UDate end, UBool ignoreDstAmount, UErrorCode &ec) const
| Checks if the time zone has equivalent transitions in the time range.
virtual int32_t | countTransitionRules (UErrorCode &status) const =0
| Returns the number of `TimeZoneRule`s which represents time transitions, for this time zone, that is, all `TimeZoneRule`s for this time zone except `InitialTimeZoneRule`.
virtual void | getTimeZoneRules (const InitialTimeZoneRule *&initial, const TimeZoneRule *trsrules[], int32_t &trscount, UErrorCode &status) const =0
| Gets the `InitialTimeZoneRule` and the set of `TimeZoneRule` which represent time transitions for this time zone.
virtual void | getSimpleRulesNear (UDate date, InitialTimeZoneRule *&initial, AnnualTimeZoneRule *&std, AnnualTimeZoneRule *&dst, UErrorCode &status) const
| Gets the set of time zone rules valid at the specified time.
virtual void | getOffsetFromLocal (UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, int32_t &rawOffset, int32_t &dstOffset, UErrorCode &status) const
| Get time zone offsets from local wall time.
void | getOffsetFromLocal (UDate date, int32_t nonExistingTimeOpt, int32_t duplicatedTimeOpt, int32_t &rawOffset, int32_t &dstOffset, UErrorCode &status) const
| Get time zone offsets from local wall time.
Public Member Functions inherited from icu::TimeZone
virtual | ~TimeZone ()
virtual bool | operator== (const TimeZone &that) const
| Returns true if the two TimeZones are equal.
bool | operator!= (const TimeZone &that) const
| Returns true if the two TimeZones are NOT equal; that is, if operator==() returns false.
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 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.
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.
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.
virtual void | setRawOffset (int32_t offsetMillis)=0
| 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).
virtual int32_t | getRawOffset (void) const =0
| 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).
UnicodeString & | getID (UnicodeString &ID) const
| Fills in "ID" with the TimeZone's ID.
void | setID (const UnicodeString &ID)
| Sets the TimeZone's ID to the specified value.
UnicodeString & | getDisplayName (UnicodeString &result) const
| Returns a name of this time zone suitable for presentation to the user in the default locale.
UnicodeString & | getDisplayName (const Locale &locale, UnicodeString &result) const
| Returns a name of this time zone suitable for presentation to the user in the specified locale.
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.
UnicodeString & | getDisplayName (UBool inDaylight, EDisplayType style, const Locale &locale, UnicodeString &result) const
| Returns a name of this time zone suitable for presentation to the user in the specified locale.
virtual UBool | useDaylightTime (void) const =0
| Queries if this time zone uses daylight savings time.
virtual UBool | inDaylightTime (UDate date, UErrorCode &status) const =0
| Queries if the given date is in daylight savings time in this time zone.
virtual UBool | hasSameRules (const TimeZone &other) const
| Returns true if this zone has the same rule and offset as another zone.
virtual TimeZone * | clone () const =0
| Clones TimeZone objects polymorphically.
virtual UClassID | getDynamicClassID (void) const override=0
| Returns a unique class ID POLYMORPHICALLY.
virtual int32_t | getDSTSavings () const
| Returns the amount of time to be added to local standard time to get local wall clock time.
Public Member Functions inherited from icu::UObject
virtual | ~UObject ()
| Destructor.
virtual UClassID | getDynamicClassID () const
| ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.

## Static Public Member Functions
static VTimeZone * | createVTimeZoneByID (const UnicodeString &ID)
| Create a `VTimeZone` instance by the time zone ID.
static VTimeZone * | createVTimeZoneFromBasicTimeZone (const BasicTimeZone &basicTZ, UErrorCode &status)
| Create a `VTimeZone` instance using a basic time zone.
static VTimeZone * | createVTimeZone (const UnicodeString &vtzdata, UErrorCode &status)
| Create a `VTimeZone` instance by RFC2445 VTIMEZONE data.
static UClassID | getStaticClassID (void)
| Return the class ID for this class.
Static Public Member Functions inherited from icu::TimeZone
static const TimeZone & | getUnknown ()
| Returns the "unknown" time zone.
static const TimeZone * | getGMT (void)
| The GMT (=UTC) time zone has a raw offset of zero and does not use daylight savings time.
static TimeZone * | createTimeZone (const UnicodeString &ID)
| Creates a `TimeZone` for the given ID.
static 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.
static StringEnumeration * | createEnumeration ()
| Returns an enumeration over all recognized time zone IDs.
static StringEnumeration * | createEnumeration (UErrorCode &status)
| Returns an enumeration over all recognized time zone IDs.
static StringEnumeration * | createEnumeration (int32_t rawOffset)
| Returns an enumeration over time zone IDs with a given raw offset from GMT.
static StringEnumeration * | createEnumerationForRawOffset (int32_t rawOffset, UErrorCode &status)
| Returns an enumeration over time zone IDs with a given raw offset from GMT.
static StringEnumeration * | createEnumeration (const char *region)
| Returns an enumeration over time zone IDs associated with the given region.
static StringEnumeration * | createEnumerationForRegion (const char *region, UErrorCode &status)
| Returns an enumeration over time zone IDs associated with the given region.
static int32_t | countEquivalentIDs (const UnicodeString &id)
| Returns the number of IDs in the equivalency group that includes the given ID.
static const UnicodeString | getEquivalentID (const UnicodeString &id, int32_t index)
| Returns an ID in the equivalency group that includes the given ID.
static TimeZone * | detectHostTimeZone ()
| Creates an instance of TimeZone detected from the current host system configuration.
static TimeZone * | createDefault (void)
| Creates a new copy of the default TimeZone for this host.
static TimeZone * | forLocaleOrDefault (const Locale &locale)
| If the locale contains the timezone keyword, creates a copy of that TimeZone.
static void | adoptDefault (TimeZone *zone)
| Sets the default time zone (i.e., what's returned by createDefault()) to be the specified time zone.
static 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.
static const char * | getTZDataVersion (UErrorCode &status)
| Returns the timezone data version currently used by ICU.
static 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.
static 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.
static 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.
static UnicodeString & | getWindowsID (const UnicodeString &id, UnicodeString &winid, UErrorCode &status)
| Converts a system time zone ID to an equivalent Windows time zone ID.
static 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.
static UClassID | getStaticClassID (void)
| Return the class ID for this class.
static 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.
static 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.

## Additional Inherited Members
Public Types inherited from icu::BasicTimeZone
enum | { kStandard = 0x01 , kDaylight = 0x03 , kFormer = 0x04 , kLatter = 0x0C }
| The time type option bit flags used by getOffsetFromLocal. More...
Public Types inherited from icu::TimeZone
enum | EDisplayType { SHORT = 1 , LONG , SHORT_GENERIC , LONG_GENERIC , SHORT_GMT , LONG_GMT , SHORT_COMMONLY_USED , GENERIC_LOCATION }
| Enum for use with getDisplayName. More...
Protected Member Functions inherited from icu::BasicTimeZone
| BasicTimeZone ()
| Default constructor.
| BasicTimeZone (const UnicodeString &id)
| Construct a timezone with a given ID.
| BasicTimeZone (const BasicTimeZone &source)
| Copy constructor.
BasicTimeZone & | operator= (const BasicTimeZone &)=default
| Copy assignment.
void | getTimeZoneRulesAfter (UDate start, InitialTimeZoneRule *&initial, UVector *&transitionRules, UErrorCode &status) const
| Gets the set of TimeZoneRule instances applicable to the specified time and after.
Protected Member Functions inherited from icu::TimeZone
| TimeZone ()
| Default constructor.
| TimeZone (const UnicodeString &id)
| Construct a TimeZone with a given ID.
| TimeZone (const TimeZone &source)
| Copy constructor.
TimeZone & | operator= (const TimeZone &right)
| Default assignment operator.
Static Protected Member Functions inherited from icu::TimeZone
static UResourceBundle * | loadRule (const UResourceBundle *top, const UnicodeString &ruleid, UResourceBundle *oldbundle, UErrorCode &status)
| Utility function.
Static Protected Attributes inherited from icu::BasicTimeZone
static constexpr int32_t | kStdDstMask = kDaylight
| A time type option bit mask used by getOffsetFromLocal.
static constexpr int32_t | kFormerLatterMask = kLatter
| A time type option bit mask used by getOffsetFromLocal.

## Detailed Description

`VTimeZone` is a class implementing RFC2445 VTIMEZONE.

You can create a `VTimeZone` instance from a time zone ID supported by `TimeZone`. With the `VTimeZone` instance created from the ID, you can write out the rule in RFC2445 VTIMEZONE format. Also, you can create a `VTimeZone` instance from RFC2445 VTIMEZONE data stream, which allows you to calculate time zone offset by the rules defined by the data. Or, you can create a `VTimeZone` from any other ICU `BasicTimeZone`.
Note: The consumer of this class reading or writing VTIMEZONE data is responsible to decode or encode Non-ASCII text. Methods reading/writing VTIMEZONE data in this class do nothing with MIME encoding.

Stable:
  ICU 3.8

Definition at line 45 of file vtzone.h.

## Constructor & Destructor Documentation

## ◆ VTimeZone()

icu::VTimeZone::VTimeZone | ( | const VTimeZone & | source | ) |

Copy constructor.

Parameters

  source | The `VTimeZone` object to be copied.

Stable:
  ICU 3.8

## ◆ ~VTimeZone()

virtual icu::VTimeZone::~VTimeZone | ( |  | ) |
| virtual

Destructor.

Stable:
  ICU 3.8

## Member Function Documentation

## ◆ clone()

virtual VTimeZone * icu::VTimeZone::clone | ( |  | ) | const
| overridevirtual

Clones TimeZone objects polymorphically.

Clients are responsible for deleting the TimeZone object cloned.

Returns
  A new copy of this TimeZone object.

Stable:
  ICU 3.8

Implements icu::BasicTimeZone.

## ◆ countTransitionRules()

virtual int32_t icu::VTimeZone::countTransitionRules | ( | UErrorCode & | status | ) | const
| overridevirtual

Returns the number of `TimeZoneRule`s which represents time transitions, for this time zone, that is, all `TimeZoneRule`s for this time zone except `InitialTimeZoneRule`.

The return value range is 0 or any positive value.

Parameters

  status | Receives error status code.

Returns
  The number of `TimeZoneRule`s representing time transitions.

Stable:
  ICU 3.8

Implements icu::BasicTimeZone.

## ◆ createVTimeZone()

static VTimeZone * icu::VTimeZone::createVTimeZone | ( | const UnicodeString & | vtzdata,
|  | UErrorCode & | status
| ) |  |
| static

Create a `VTimeZone` instance by RFC2445 VTIMEZONE data.

Parameters

  vtzdata | The string including VTIMEZONE data block
  status | Output param to filled in with a success or an error.

Returns
  A `VTimeZone` initialized by the VTIMEZONE data or nullptr if failed to load the rule from the VTIMEZONE data.

Stable:
  ICU 3.8

## ◆ createVTimeZoneByID()

static VTimeZone * icu::VTimeZone::createVTimeZoneByID | ( | const UnicodeString & | ID | ) |
| static

Create a `VTimeZone` instance by the time zone ID.

Parameters

  ID | The time zone ID, such as America/New_York

Returns
  A `VTimeZone` object initialized by the time zone ID, or nullptr when the ID is unknown.

Stable:
  ICU 3.8

## ◆ createVTimeZoneFromBasicTimeZone()

static VTimeZone * icu::VTimeZone::createVTimeZoneFromBasicTimeZone | ( | const BasicTimeZone & | basicTZ,
|  | UErrorCode & | status
| ) |  |
| static

Create a `VTimeZone` instance using a basic time zone.

Parameters

  basicTZ | The basic time zone instance
  status | Output param to filled in with a success or an error.

Returns
  A `VTimeZone` object initialized by the basic time zone.

Stable:
  ICU 4.6

## ◆ getDynamicClassID()

virtual UClassID icu::VTimeZone::getDynamicClassID | ( | void |  | ) | const
| overridevirtual

Returns a unique class ID POLYMORPHICALLY.

Pure virtual override. 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.

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.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ getLastModified()

UBool icu::VTimeZone::getLastModified | ( | UDate & | lastModified | ) | const

Gets the RFC2445 LAST-MODIFIED property value.

When a `VTimeZone` instance was created from VTIMEZONE data, the initial value is set by the LAST-MODIFIED property value in the data. Otherwise, the initial value is not set.

Parameters

  lastModified | Receives the last modified date.

Returns
  true if lastModified attribute is available and value is set.

Stable:
  ICU 3.8

## ◆ getNextTransition()

virtual UBool icu::VTimeZone::getNextTransition | ( | UDate | base,
|  | UBool | inclusive,
|  | TimeZoneTransition & | result
| ) |  | const
| overridevirtual

Gets the first time zone transition after the base time.

Parameters

  base | The base time.
  inclusive | Whether the base time is inclusive or not.
  result | Receives the first transition after the base time.

Returns
  true if the transition is found.

Stable:
  ICU 3.8

Implements icu::BasicTimeZone.

## ◆ getOffset() [1/3]

virtual void icu::VTimeZone::getOffset | ( | UDate | date,
|  | UBool | local,
|  | int32_t & | rawOffset,
|  | int32_t & | dstOffset,
|  | UErrorCode & | ec
| ) |  | const
| overridevirtual

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().

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

Stable:
  ICU 3.8

Reimplemented from icu::TimeZone.

## ◆ getOffset() [2/3]

virtual int32_t icu::VTimeZone::getOffset | ( | uint8_t | era,
|  | int32_t | year,
|  | int32_t | month,
|  | int32_t | day,
|  | uint8_t | dayOfWeek,
|  | int32_t | millis,
|  | int32_t | monthLength,
|  | UErrorCode & | status
| ) |  | const
| overridevirtual

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 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
  monthLength | The length of the given month in days.
  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.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ getOffset() [3/3]

virtual int32_t icu::VTimeZone::getOffset | ( | uint8_t | era,
|  | int32_t | year,
|  | int32_t | month,
|  | int32_t | day,
|  | uint8_t | dayOfWeek,
|  | int32_t | millis,
|  | UErrorCode & | status
| ) |  | const
| overridevirtual

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.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ getOffsetFromLocal()

virtual void icu::VTimeZone::getOffsetFromLocal | ( | UDate | date,
|  | UTimeZoneLocalOption | nonExistingTimeOpt,
|  | UTimeZoneLocalOption | duplicatedTimeOpt,
|  | int32_t & | rawOffset,
|  | int32_t & | dstOffset,
|  | UErrorCode & | status
| ) |  | const
| overridevirtual

Get time zone offsets from local wall time.

Stable:
  ICU 69

Reimplemented from icu::BasicTimeZone.

## ◆ getPreviousTransition()

virtual UBool icu::VTimeZone::getPreviousTransition | ( | UDate | base,
|  | UBool | inclusive,
|  | TimeZoneTransition & | result
| ) |  | const
| overridevirtual

Gets the most recent time zone transition before the base time.

Parameters

  base | The base time.
  inclusive | Whether the base time is inclusive or not.
  result | Receives the most recent transition before the base time.

Returns
  true if the transition is found.

Stable:
  ICU 3.8

Implements icu::BasicTimeZone.

## ◆ getRawOffset()

virtual int32_t icu::VTimeZone::getRawOffset | ( | void |  | ) | const
| overridevirtual

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.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ getStaticClassID()

static UClassID icu::VTimeZone::getStaticClassID | ( | void |  | ) |
| static

Return the class ID for this class.

This is useful only for comparing to a return value from getDynamicClassID(). For example:

    .   Base* polymorphic_pointer = createPolymorphicObject();
    .   if (polymorphic_pointer->getDynamicClassID() ==
    .       erived::getStaticClassID()) ...

Returns
  The class ID for all objects of this class.

Stable:
  ICU 3.8

## ◆ getTimeZoneRules()

virtual void icu::VTimeZone::getTimeZoneRules | ( | const InitialTimeZoneRule *& | initial,
|  | const TimeZoneRule * | trsrules[],
|  | int32_t & | trscount,
|  | UErrorCode & | status
| ) |  | const
| overridevirtual

Gets the `InitialTimeZoneRule` and the set of `TimeZoneRule` which represent time transitions for this time zone.

On successful return, the argument initial points to non-nullptr `InitialTimeZoneRule` and the array trsrules is filled with 0 or multiple `TimeZoneRule` instances up to the size specified by trscount. The results are referencing the rule instance held by this time zone instance. Therefore, after this time zone is destructed, they are no longer available.

Parameters

  initial | Receives the initial timezone rule
  trsrules | Receives the timezone transition rules
  trscount | On input, specify the size of the array 'transitions' receiving the timezone transition rules. On output, actual number of rules filled in the array will be set.
  status | Receives error status code.

Stable:
  ICU 3.8

Implements icu::BasicTimeZone.

## ◆ getTZURL()

UBool icu::VTimeZone::getTZURL | ( | UnicodeString & | url | ) | const

Gets the RFC2445 TZURL property value.

When a `VTimeZone` instance was created from VTIMEZONE data, the initial value is set by the TZURL property value in the data. Otherwise, the initial value is not set.

Parameters

  url | Receives the RFC2445 TZURL property value.

Returns
  true if TZURL attribute is available and value is set.

Stable:
  ICU 3.8

## ◆ hasSameRules()

virtual UBool icu::VTimeZone::hasSameRules | ( | const TimeZone & | other | ) | const
| overridevirtual

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

Stable:
  ICU 3.8

Reimplemented from icu::TimeZone.

## ◆ inDaylightTime()

virtual UBool icu::VTimeZone::inDaylightTime | ( | UDate | date,
|  | UErrorCode & | status
| ) |  | const
| overridevirtual

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.

Deprecated:
  ICU 2.4. Use Calendar::inDaylightTime() instead.

Implements icu::TimeZone.

## ◆ operator!=()

virtual bool icu::VTimeZone::operator!= | ( | const TimeZone & | that | ) | const
| virtual

Return true if the given `TimeZone` objects are semantically unequal.

Objects of different subclasses are considered unequal.

Parameters

  that | The object to be compared with.

Returns
  true if the given `TimeZone` objects are semantically unequal.

Stable:
  ICU 3.8

## ◆ operator=()

VTimeZone & icu::VTimeZone::operator= | ( | const VTimeZone & | right | ) |

Assignment operator.

Parameters

  right | The object to be copied.

Stable:
  ICU 3.8

## ◆ operator==()

virtual bool icu::VTimeZone::operator== | ( | const TimeZone & | that | ) | const
| overridevirtual

Return true if the given `TimeZone` objects are semantically equal.

Objects of different subclasses are considered unequal.

Parameters

  that | The object to be compared with.

Returns
  true if the given `TimeZone` objects are semantically equal.

Stable:
  ICU 3.8

Reimplemented from icu::TimeZone.

## ◆ setLastModified()

void icu::VTimeZone::setLastModified | ( | UDate | lastModified | ) |

Sets the RFC2445 LAST-MODIFIED property value.

Parameters

  lastModified | The LAST-MODIFIED date.

Stable:
  ICU 3.8

## ◆ setRawOffset()

virtual void icu::VTimeZone::setRawOffset | ( | int32_t | offsetMillis | ) |
| overridevirtual

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.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ setTZURL()

void icu::VTimeZone::setTZURL | ( | const UnicodeString & | url | ) |

Sets the RFC2445 TZURL property value.

Parameters

  url | The TZURL property value.

Stable:
  ICU 3.8

## ◆ useDaylightTime()

virtual UBool icu::VTimeZone::useDaylightTime | ( | void |  | ) | const
| overridevirtual

Queries if this time zone uses daylight savings time.

Returns
  true if this time zone uses daylight savings time, false, otherwise.

Stable:
  ICU 3.8

Implements icu::TimeZone.

## ◆ write() [1/2]

void icu::VTimeZone::write | ( | UDate | start,
|  | UnicodeString & | result,
|  | UErrorCode & | status
| ) |  | const

Writes RFC2445 VTIMEZONE data for this time zone applicable for dates after the specified start time.

Parameters

  start | The start date.
  result | Output param to filled in with the VTIMEZONE data.
  status | Output param to filled in with a success or an error.

Stable:
  ICU 3.8

## ◆ write() [2/2]

void icu::VTimeZone::write | ( | UnicodeString & | result,
|  | UErrorCode & | status
| ) |  | const

Writes RFC2445 VTIMEZONE data for this time zone.

Parameters

  result | Output param to filled in with the VTIMEZONE data.
  status | Output param to filled in with a success or an error.

Stable:
  ICU 3.8

## ◆ writeSimple()

void icu::VTimeZone::writeSimple | ( | UDate | time,
|  | UnicodeString & | result,
|  | UErrorCode & | status
| ) |  | const

Writes RFC2445 VTIMEZONE data applicable for the specified date.

Some common iCalendar implementations can only handle a single time zone property or a pair of standard and daylight time properties using BYDAY rule with day of week (such as BYDAY=1SUN). This method produce the VTIMEZONE data which can be handled these implementations. The rules produced by this method can be used only for calculating time zone offset around the specified date.

Parameters

  time | The date used for rule extraction.
  result | Output param to filled in with the VTIMEZONE data.
  status | Output param to filled in with a success or an error.

Stable:
  ICU 3.8

The documentation for this class was generated from the following file:

- i18n/unicode/vtzone.h