ICU 65.1  65.1
Public Types | Public Member Functions | Static Public Member Functions
icu::SimpleTimeZone Class Reference

SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar. More...

#include <simpletz.h>

Inheritance diagram for icu::SimpleTimeZone:
icu::BasicTimeZone icu::TimeZone icu::UObject icu::UMemory

Public Types

enum  TimeMode { WALL_TIME = 0, STANDARD_TIME, UTC_TIME }
 TimeMode is used, together with a millisecond offset after midnight, to specify a rule transition time. More...
 
- 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...
 

Public Member Functions

 SimpleTimeZone (const SimpleTimeZone &source)
 Copy constructor. More...
 
SimpleTimeZoneoperator= (const SimpleTimeZone &right)
 Default assignment operator. More...
 
virtual ~SimpleTimeZone ()
 Destructor. More...
 
virtual UBool operator== (const TimeZone &that) const
 Returns true if the two TimeZone objects are equal; that is, they have the same ID, raw GMT offset, and DST rules. More...
 
 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID)
 Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, and which doesn't observe daylight savings time. More...
 
 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...
 
 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, int32_t savingsDST, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...
 
 SimpleTimeZone (int32_t rawOffsetGMT, const UnicodeString &ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, TimeMode savingsStartTimeMode, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, TimeMode savingsEndTimeMode, int32_t savingsDST, UErrorCode &status)
 Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time. More...
 
void setStartYear (int32_t year)
 Sets the daylight savings starting year, that is, the year this time zone began observing its specified daylight savings time rules. More...
 
void setStartRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode &status)
 Sets the daylight savings starting rule. More...
 
void setStartRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the daylight savings starting rule. More...
 
void setStartRule (int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode &status)
 Sets the DST start rule to a fixed date within a month. More...
 
void setStartRule (int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the DST start rule to a fixed date within a month. More...
 
void setStartRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode &status)
 Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...
 
void setStartRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode &status)
 Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...
 
void setEndRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode &status)
 Sets the daylight savings ending rule. More...
 
void setEndRule (int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the daylight savings ending rule. More...
 
void setEndRule (int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode &status)
 Sets the DST end rule to a fixed date within a month. More...
 
void setEndRule (int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode &status)
 Sets the DST end rule to a fixed date within a month. More...
 
void setEndRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode &status)
 Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. More...
 
void setEndRule (int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode &status)
 Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th. 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
 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. 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
 Gets the time zone offset, for current date, modified in case of daylight savings. 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, int32_t prevMonthLength, UErrorCode &status) const
 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
 Redeclared TimeZone method. More...
 
virtual 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. More...
 
virtual int32_t getRawOffset (void) const
 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). More...
 
virtual 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). More...
 
void setDSTSavings (int32_t millisSavedDuringDST, UErrorCode &status)
 Sets the amount of time in ms that the clock is advanced during DST. More...
 
virtual int32_t getDSTSavings (void) const
 Returns the amount of time in ms that the clock is advanced during DST. More...
 
virtual UBool useDaylightTime (void) const
 Queries if this TimeZone uses Daylight Savings Time. More...
 
virtual UBool inDaylightTime (UDate date, UErrorCode &status) const
 Returns true if the given date is within the period when daylight savings time is in effect; false otherwise. More...
 
UBool hasSameRules (const TimeZone &other) const
 Return true if this zone has the same rules and offset as another zone. More...
 
virtual SimpleTimeZoneclone () const
 Clones TimeZone objects polymorphically. More...
 
virtual UBool getNextTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const
 Gets the first time zone transition after the base time. More...
 
virtual UBool getPreviousTransition (UDate base, UBool inclusive, TimeZoneTransition &result) const
 Gets the most recent time zone transition before the base time. More...
 
virtual int32_t countTransitionRules (UErrorCode &status) const
 Returns the number of TimeZoneRules which represents time transitions, for this time zone, that is, all TimeZoneRules for this time zone except InitialTimeZoneRule. More...
 
virtual void getTimeZoneRules (const InitialTimeZoneRule *&initial, const TimeZoneRule *trsrules[], int32_t &trscount, UErrorCode &status) const
 Gets the InitialTimeZoneRule and the set of TimeZoneRule which represent time transitions for this time zone. More...
 
virtual UClassID getDynamicClassID (void) const
 Override TimeZone Returns a unique class ID POLYMORPHICALLY. More...
 
- Public Member Functions inherited from icu::BasicTimeZone
virtual ~BasicTimeZone ()
 Destructor. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from icu::TimeZone
virtual ~TimeZone ()
 
UBool operator!= (const TimeZone &that) const
 Returns true if the two TimeZones are NOT equal; that is, if operator==() returns false. More...
 
UnicodeStringgetID (UnicodeString &ID) const
 Fills in "ID" with the TimeZone's ID. More...
 
void setID (const UnicodeString &ID)
 Sets the TimeZone's ID to the specified value. More...
 
UnicodeStringgetDisplayName (UnicodeString &result) const
 Returns a name of this time zone suitable for presentation to the user in the default locale. More...
 
UnicodeStringgetDisplayName (const Locale &locale, UnicodeString &result) const
 Returns a name of this time zone suitable for presentation to the user in the specified locale. More...
 
UnicodeStringgetDisplayName (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...
 
UnicodeStringgetDisplayName (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. More...
 
- Public Member Functions inherited from icu::UObject
virtual ~UObject ()
 Destructor. More...
 

Static Public Member Functions

static UClassID getStaticClassID (void)
 Return the class ID for this class. More...
 
- Static Public Member Functions inherited from icu::TimeZone
static const TimeZonegetUnknown ()
 Returns the "unknown" time zone. More...
 
static const TimeZonegetGMT (void)
 The GMT (=UTC) time zone has a raw offset of zero and does not use daylight savings time. More...
 
static TimeZonecreateTimeZone (const UnicodeString &ID)
 Creates a TimeZone for the given ID. More...
 
static StringEnumerationcreateTimeZoneIDEnumeration (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...
 
static StringEnumerationcreateEnumeration ()
 Returns an enumeration over all recognized time zone IDs. More...
 
static StringEnumerationcreateEnumeration (int32_t rawOffset)
 Returns an enumeration over time zone IDs with a given raw offset from GMT. More...
 
static StringEnumerationcreateEnumeration (const char *country)
 Returns an enumeration over time zone IDs associated with the given country. More...
 
static int32_t countEquivalentIDs (const UnicodeString &id)
 Returns the number of IDs in the equivalency group that includes the given ID. More...
 
static const UnicodeString getEquivalentID (const UnicodeString &id, int32_t index)
 Returns an ID in the equivalency group that includes the given ID. More...
 
static TimeZonedetectHostTimeZone ()
 Creates an instance of TimeZone detected from the current host system configuration. More...
 
static TimeZonecreateDefault (void)
 Creates a new copy of the default TimeZone for this host. More...
 
static void adoptDefault (TimeZone *zone)
 Sets the default time zone (i.e., what's returned by createDefault()) to be the specified time zone. More...
 
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. More...
 
static const char * getTZDataVersion (UErrorCode &status)
 Returns the timezone data version currently used by ICU. More...
 
static UnicodeStringgetCanonicalID (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. More...
 
static UnicodeStringgetCanonicalID (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. More...
 
static UnicodeStringgetWindowsID (const UnicodeString &id, UnicodeString &winid, UErrorCode &status)
 Converts a system time zone ID to an equivalent Windows time zone ID. More...
 
static UnicodeStringgetIDForWindowsID (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. More...
 
static UClassID getStaticClassID (void)
 Return the class ID for this class. More...
 
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. More...
 
static const char16_t * getRegion (const UnicodeString &id, UErrorCode &status)
 Returns the region code associated with the given zone, or NULL if the zone is not known. More...
 

Additional Inherited Members

- Protected Types inherited from icu::BasicTimeZone
enum  { kStdDstMask = kDaylight, kFormerLatterMask = kLatter }
 The time type option bit masks used by getOffsetFromLocal. More...
 
- Protected Member Functions inherited from icu::BasicTimeZone
 BasicTimeZone ()
 Default constructor. More...
 
 BasicTimeZone (const UnicodeString &id)
 Construct a timezone with a given ID. More...
 
 BasicTimeZone (const BasicTimeZone &source)
 Copy constructor. More...
 
void getTimeZoneRulesAfter (UDate start, InitialTimeZoneRule *&initial, UVector *&transitionRules, UErrorCode &status) const
 Gets the set of TimeZoneRule instances applicable to the specified time and after. More...
 
- Protected Member Functions inherited from icu::TimeZone
 TimeZone ()
 Default constructor. More...
 
 TimeZone (const UnicodeString &id)
 Construct a TimeZone with a given ID. More...
 
 TimeZone (const TimeZone &source)
 Copy constructor. More...
 
TimeZoneoperator= (const TimeZone &right)
 Default assignment operator. More...
 
- Static Protected Member Functions inherited from icu::TimeZone
static UResourceBundleloadRule (const UResourceBundle *top, const UnicodeString &ruleid, UResourceBundle *oldbundle, UErrorCode &status)
 Utility function. More...
 

Detailed Description

SimpleTimeZone is a concrete subclass of TimeZone that represents a time zone for use with a Gregorian calendar.

This class does not handle historical changes.

When specifying daylight-savings-time begin and end dates, use a negative value for dayOfWeekInMonth to indicate that SimpleTimeZone should count from the end of the month backwards. For example, if Daylight Savings Time starts or ends at the last Sunday a month, use dayOfWeekInMonth = -1 along with dayOfWeek = UCAL_SUNDAY to specify the rule.

See also
Calendar
GregorianCalendar
TimeZone
Author
D. Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu

Definition at line 65 of file simpletz.h.

Member Enumeration Documentation

◆ TimeMode

TimeMode is used, together with a millisecond offset after midnight, to specify a rule transition time.

Most rules transition at a local wall time, that is, according to the current time in effect, either standard, or DST. However, some rules transition at local standard time, and some at a specific UTC time. Although it might seem that all times could be converted to wall time, thus eliminating the need for this parameter, this is not the case.

Stable:
ICU 2.0

Definition at line 79 of file simpletz.h.

Constructor & Destructor Documentation

◆ SimpleTimeZone() [1/5]

icu::SimpleTimeZone::SimpleTimeZone ( const SimpleTimeZone source)

Copy constructor.

Parameters
sourcethe object to be copied.
Stable:
ICU 2.0

◆ ~SimpleTimeZone()

virtual icu::SimpleTimeZone::~SimpleTimeZone ( )
virtual

Destructor.

Stable:
ICU 2.0

◆ SimpleTimeZone() [2/5]

icu::SimpleTimeZone::SimpleTimeZone ( int32_t  rawOffsetGMT,
const UnicodeString ID 
)

Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, and which doesn't observe daylight savings time.

Normally you should use TimeZone::createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Parameters
rawOffsetGMTThe given base time zone offset to GMT.
IDThe timezone ID which is obtained from TimeZone.getAvailableIDs.
Stable:
ICU 2.0

◆ SimpleTimeZone() [3/5]

icu::SimpleTimeZone::SimpleTimeZone ( int32_t  rawOffsetGMT,
const UnicodeString ID,
int8_t  savingsStartMonth,
int8_t  savingsStartDayOfWeekInMonth,
int8_t  savingsStartDayOfWeek,
int32_t  savingsStartTime,
int8_t  savingsEndMonth,
int8_t  savingsEndDayOfWeekInMonth,
int8_t  savingsEndDayOfWeek,
int32_t  savingsEndTime,
UErrorCode status 
)

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters
rawOffsetGMTThe new SimpleTimeZone's raw GMT offset
IDThe new SimpleTimeZone's time zone ID.
savingsStartMonthThe daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonthThe daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeekThe daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTimeThe daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsEndMonthThe daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonthThe daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeekThe daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTimeThe daylight savings ending time, expressed as the number of milliseconds after midnight.
statusAn UErrorCode to receive the status.
Stable:
ICU 2.0

◆ SimpleTimeZone() [4/5]

icu::SimpleTimeZone::SimpleTimeZone ( int32_t  rawOffsetGMT,
const UnicodeString ID,
int8_t  savingsStartMonth,
int8_t  savingsStartDayOfWeekInMonth,
int8_t  savingsStartDayOfWeek,
int32_t  savingsStartTime,
int8_t  savingsEndMonth,
int8_t  savingsEndDayOfWeekInMonth,
int8_t  savingsEndDayOfWeek,
int32_t  savingsEndTime,
int32_t  savingsDST,
UErrorCode status 
)

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters
rawOffsetGMTThe new SimpleTimeZone's raw GMT offset
IDThe new SimpleTimeZone's time zone ID.
savingsStartMonthThe daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonthThe daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeekThe daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTimeThe daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsEndMonthThe daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonthThe daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeekThe daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTimeThe daylight savings ending time, expressed as the number of milliseconds after midnight.
savingsDSTThe number of milliseconds added to standard time to get DST time. Default is one hour.
statusAn UErrorCode to receive the status.
Stable:
ICU 2.0

◆ SimpleTimeZone() [5/5]

icu::SimpleTimeZone::SimpleTimeZone ( int32_t  rawOffsetGMT,
const UnicodeString ID,
int8_t  savingsStartMonth,
int8_t  savingsStartDayOfWeekInMonth,
int8_t  savingsStartDayOfWeek,
int32_t  savingsStartTime,
TimeMode  savingsStartTimeMode,
int8_t  savingsEndMonth,
int8_t  savingsEndDayOfWeekInMonth,
int8_t  savingsEndDayOfWeek,
int32_t  savingsEndTime,
TimeMode  savingsEndTimeMode,
int32_t  savingsDST,
UErrorCode status 
)

Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, and times to start and end daylight savings time.

To create a TimeZone that doesn't observe daylight savings time, don't use this constructor; use SimpleTimeZone(rawOffset, ID) instead. Normally, you should use TimeZone.createInstance() to create a TimeZone instead of creating a SimpleTimeZone directly with this constructor.

Various types of daylight-savings time rules can be specfied by using different values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a complete explanation of how these parameters work, see the documentation for setStartRule().

Parameters
rawOffsetGMTThe new SimpleTimeZone's raw GMT offset
IDThe new SimpleTimeZone's time zone ID.
savingsStartMonthThe daylight savings starting month. Month is 0-based. eg, 0 for January.
savingsStartDayOfWeekInMonthThe daylight savings starting day-of-week-in-month. See setStartRule() for a complete explanation.
savingsStartDayOfWeekThe daylight savings starting day-of-week. See setStartRule() for a complete explanation.
savingsStartTimeThe daylight savings starting time, expressed as the number of milliseconds after midnight.
savingsStartTimeModeWhether the start time is local wall time, local standard time, or UTC time. Default is local wall time.
savingsEndMonthThe daylight savings ending month. Month is 0-based. eg, 0 for January.
savingsEndDayOfWeekInMonthThe daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
savingsEndDayOfWeekThe daylight savings ending day-of-week. See setStartRule() for a complete explanation.
savingsEndTimeThe daylight savings ending time, expressed as the number of milliseconds after midnight.
savingsEndTimeModeWhether the end time is local wall time, local standard time, or UTC time. Default is local wall time.
savingsDSTThe number of milliseconds added to standard time to get DST time. Default is one hour.
statusAn UErrorCode to receive the status.
Stable:
ICU 2.0

Member Function Documentation

◆ clone()

virtual SimpleTimeZone* icu::SimpleTimeZone::clone ( ) const
virtual

Clones TimeZone objects polymorphically.

Clients are responsible for deleting the TimeZone object cloned.

Returns
A new copy of this TimeZone object.
Stable:
ICU 2.0

Implements icu::BasicTimeZone.

◆ countTransitionRules()

virtual int32_t icu::SimpleTimeZone::countTransitionRules ( UErrorCode status) const
virtual

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

The return value range is 0 or any positive value.

Parameters
statusReceives error status code.
Returns
The number of TimeZoneRules representing time transitions.
Stable:
ICU 3.8

Implements icu::BasicTimeZone.

◆ getDSTSavings()

virtual int32_t icu::SimpleTimeZone::getDSTSavings ( void  ) const
virtual

Returns the amount of time in ms that the clock is advanced during DST.

Returns
the number of milliseconds the time is advanced with respect to standard time when the daylight savings rules are in effect. Typically one hour (+3600000). The amount could be negative, but not 0.
Stable:
ICU 2.0

Reimplemented from icu::TimeZone.

◆ getDynamicClassID()

virtual UClassID icu::SimpleTimeZone::getDynamicClassID ( void  ) const
virtual

Override TimeZone 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 2.0

Implements icu::TimeZone.

◆ getNextTransition()

virtual UBool icu::SimpleTimeZone::getNextTransition ( UDate  base,
UBool  inclusive,
TimeZoneTransition result 
) const
virtual

Gets the first time zone transition after the base time.

Parameters
baseThe base time.
inclusiveWhether the base time is inclusive or not.
resultReceives the first transition after the base time.
Returns
TRUE if the transition is found.
Stable:
ICU 3.8

Implements icu::BasicTimeZone.

◆ getOffset() [1/4]

virtual int32_t icu::SimpleTimeZone::getOffset ( uint8_t  era,
int32_t  year,
int32_t  month,
int32_t  day,
uint8_t  dayOfWeek,
int32_t  millis,
UErrorCode status 
) const
virtual

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 in GMT, NOT local time.

Parameters
eraThe reference date's era
yearThe reference date's year
monthThe reference date's month (0-based; 0 is January)
dayThe reference date's day-in-month (1-based)
dayOfWeekThe reference date's day-of-week (1-based; 1 is Sunday)
millisThe reference date's milliseconds in day, UTT (NOT local time).
statusAn UErrorCode to receive the status.
Returns
The offset in milliseconds to add to GMT to get local time.
Stable:
ICU 2.0

Implements icu::TimeZone.

◆ getOffset() [2/4]

virtual int32_t icu::SimpleTimeZone::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
virtual

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.

Parameters
erathe era of the given date.
yearthe year in the given date.
monththe month in the given date. Month is 0-based. e.g., 0 for January.
daythe day-in-month of the given date.
dayOfWeekthe day-of-week of the given date.
millisecondsthe millis in day in standard local time.
monthLengththe length of the given month in days.
statusAn UErrorCode to receive the status.
Returns
the offset to add to GMT to get local time.
Stable:
ICU 2.0

Implements icu::TimeZone.

◆ getOffset() [3/4]

virtual int32_t icu::SimpleTimeZone::getOffset ( uint8_t  era,
int32_t  year,
int32_t  month,
int32_t  day,
uint8_t  dayOfWeek,
int32_t  milliseconds,
int32_t  monthLength,
int32_t  prevMonthLength,
UErrorCode status 
) const
virtual

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.

Parameters
erathe era of the given date.
yearthe year in the given date.
monththe month in the given date. Month is 0-based. e.g., 0 for January.
daythe day-in-month of the given date.
dayOfWeekthe day-of-week of the given date.
millisecondsthe millis in day in standard local time.
monthLengththe length of the given month in days.
prevMonthLengthlength of the previous month in days.
statusAn UErrorCode to receive the status.
Returns
the offset to add to GMT to get local time.
Stable:
ICU 2.0

◆ getOffset() [4/4]

void icu::SimpleTimeZone::getOffset ( UDate  date,
UBool  local,
int32_t &  rawOffset,
int32_t &  dstOffset,
UErrorCode ec 
) const
inlinevirtual

Redeclared TimeZone method.

This implementation simply calls the base class method, which otherwise would be hidden.

Stable:
ICU 2.8

Reimplemented from icu::TimeZone.

Definition at line 927 of file simpletz.h.

References icu::TimeZone::getOffset().

◆ getOffsetFromLocal()

virtual void icu::SimpleTimeZone::getOffsetFromLocal ( UDate  date,
int32_t  nonExistingTimeOpt,
int32_t  duplicatedTimeOpt,
int32_t &  rawOffset,
int32_t &  dstOffset,
UErrorCode status 
) const
virtual

Get time zone offsets from local wall time.

Internal:
Do not use. This API is for internal use only.

Reimplemented from icu::BasicTimeZone.

◆ getPreviousTransition()

virtual UBool icu::SimpleTimeZone::getPreviousTransition ( UDate  base,
UBool  inclusive,
TimeZoneTransition result 
) const
virtual

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

Parameters
baseThe base time.
inclusiveWhether the base time is inclusive or not.
resultReceives 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::SimpleTimeZone::getRawOffset ( void  ) const
virtual

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 2.0

Implements icu::TimeZone.

◆ getStaticClassID()

static UClassID icu::SimpleTimeZone::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() ==
.       Derived::getStaticClassID()) ...
Returns
The class ID for all objects of this class.
Stable:
ICU 2.0

◆ getTimeZoneRules()

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

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-NULL 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
initialReceives the initial timezone rule
trsrulesReceives the timezone transition rules
trscountOn 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.
statusReceives error status code.
Stable:
ICU 3.8

Implements icu::BasicTimeZone.

◆ hasSameRules()

UBool icu::SimpleTimeZone::hasSameRules ( const TimeZone other) const
virtual

Return true if this zone has the same rules and offset as another zone.

Parameters
otherthe TimeZone object to be compared with
Returns
true if the given zone has the same rules and offset as this one
Stable:
ICU 2.0

Reimplemented from icu::TimeZone.

◆ inDaylightTime()

virtual UBool icu::SimpleTimeZone::inDaylightTime ( UDate  date,
UErrorCode status 
) const
virtual

Returns true if the given date is within the period when daylight savings time is in effect; false otherwise.

If the TimeZone doesn't observe daylight savings time, this functions always returns false. 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
dateThe date to test.
statusAn UErrorCode to receive the status.
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=()

SimpleTimeZone& icu::SimpleTimeZone::operator= ( const SimpleTimeZone right)

Default assignment operator.

Parameters
rightthe object to be copied.
Stable:
ICU 2.0

◆ operator==()

virtual UBool icu::SimpleTimeZone::operator== ( const TimeZone that) const
virtual

Returns true if the two TimeZone objects are equal; that is, they have the same ID, raw GMT offset, and DST rules.

Parameters
thatThe SimpleTimeZone object to be compared with.
Returns
True if the given time zone is equal to this time zone; false otherwise.
Stable:
ICU 2.0

Reimplemented from icu::TimeZone.

◆ setDSTSavings()

void icu::SimpleTimeZone::setDSTSavings ( int32_t  millisSavedDuringDST,
UErrorCode status 
)

Sets the amount of time in ms that the clock is advanced during DST.

Parameters
millisSavedDuringDSTthe number of milliseconds the time is advanced with respect to standard time when the daylight savings rules are in effect. Typically one hour (+3600000). The amount could be negative, but not 0.
statusAn UErrorCode to receive the status.
Stable:
ICU 2.0

◆ setEndRule() [1/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfWeekInMonth,
int32_t  dayOfWeek,
int32_t  time,
UErrorCode status 
)
inline

Sets the daylight savings ending rule.

For example, if Daylight Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. Therefore, you can set the end rule by calling:

   setEndRule(UCAL_OCTOBER, -1, UCAL_SUNDAY, 2*60*60*1000);

Various other types of rules can be specified by manipulating the dayOfWeek and dayOfWeekInMonth parameters. For complete details, see the documentation for setStartRule().

Parameters
monththe daylight savings ending month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonththe daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
dayOfWeekthe daylight savings ending day-of-week. See setStartRule() for a complete explanation.
timethe daylight savings ending time. Please see the member description for an example.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 910 of file simpletz.h.

◆ setEndRule() [2/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfWeekInMonth,
int32_t  dayOfWeek,
int32_t  time,
TimeMode  mode,
UErrorCode status 
)

Sets the daylight savings ending rule.

For example, if Daylight Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. Therefore, you can set the end rule by calling:

   setEndRule(UCAL_OCTOBER, -1, UCAL_SUNDAY, 2*60*60*1000);

Various other types of rules can be specified by manipulating the dayOfWeek and dayOfWeekInMonth parameters. For complete details, see the documentation for setStartRule().

Parameters
monththe daylight savings ending month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonththe daylight savings ending day-of-week-in-month. See setStartRule() for a complete explanation.
dayOfWeekthe daylight savings ending day-of-week. See setStartRule() for a complete explanation.
timethe daylight savings ending time. Please see the member description for an example.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setEndRule() [3/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  time,
UErrorCode status 
)
inline

Sets the DST end rule to a fixed date within a month.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthThe date in that month (1-based).
timeThe time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 916 of file simpletz.h.

◆ setEndRule() [4/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  time,
TimeMode  mode,
UErrorCode status 
)

Sets the DST end rule to a fixed date within a month.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthThe date in that month (1-based).
timeThe time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setEndRule() [5/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  dayOfWeek,
int32_t  time,
UBool  after,
UErrorCode status 
)
inline

Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthA date within that month (1-based).
dayOfWeekThe day of the week on which this rule occurs.
timeThe time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
afterIf true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 921 of file simpletz.h.

◆ setEndRule() [6/6]

void icu::SimpleTimeZone::setEndRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  dayOfWeek,
int32_t  time,
TimeMode  mode,
UBool  after,
UErrorCode status 
)

Sets the DST end rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthA date within that month (1-based).
dayOfWeekThe day of the week on which this rule occurs.
timeThe time of that day (number of millis after midnight) when DST ends in local wall time, which is daylight time in this case.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
afterIf true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setRawOffset()

virtual void icu::SimpleTimeZone::setRawOffset ( int32_t  offsetMillis)
virtual

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
offsetMillisThe new raw GMT offset for this time zone.
Stable:
ICU 2.0

Implements icu::TimeZone.

◆ setStartRule() [1/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfWeekInMonth,
int32_t  dayOfWeek,
int32_t  time,
UErrorCode status 
)
inline

Sets the daylight savings starting rule.

For example, in the U.S., Daylight Savings Time starts at the second Sunday in March, at 2 AM in standard time. Therefore, you can set the start rule by calling: setStartRule(UCAL_MARCH, 2, UCAL_SUNDAY, 2*60*60*1000); The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate the exact starting date. Their exact meaning depend on their respective signs, allowing various types of rules to be constructed, as follows:

  • If both dayOfWeekInMonth and dayOfWeek are positive, they specify the day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday of the month).
  • If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify the day of week in the month counting backward from the end of the month. (e.g., (-1, MONDAY) is the last Monday in the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth specifies the day of the month, regardless of what day of the week it is. (e.g., (10, 0) is the tenth day of the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth specifies the day of the month counting backward from the end of the month, regardless of what day of the week it is (e.g., (-2, 0) is the next-to-last day of the month).
  • If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the first specified day of the week on or after the specfied day of the month. (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month [or the 15th itself if the 15th is a Sunday].)
  • If dayOfWeek and DayOfWeekInMonth are both negative, they specify the last specified day of the week on or before the specified day of the month. (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month [or the 20th itself if the 20th is a Tuesday].)
Parameters
monththe daylight savings starting month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonththe daylight savings starting day-of-week-in-month. Please see the member description for an example.
dayOfWeekthe daylight savings starting day-of-week. Please see the member description for an example.
timethe daylight savings starting time. Please see the member description for an example.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 892 of file simpletz.h.

◆ setStartRule() [2/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfWeekInMonth,
int32_t  dayOfWeek,
int32_t  time,
TimeMode  mode,
UErrorCode status 
)

Sets the daylight savings starting rule.

For example, in the U.S., Daylight Savings Time starts at the second Sunday in March, at 2 AM in standard time. Therefore, you can set the start rule by calling: setStartRule(UCAL_MARCH, 2, UCAL_SUNDAY, 2*60*60*1000); The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate the exact starting date. Their exact meaning depend on their respective signs, allowing various types of rules to be constructed, as follows:

  • If both dayOfWeekInMonth and dayOfWeek are positive, they specify the day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday of the month).
  • If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify the day of week in the month counting backward from the end of the month. (e.g., (-1, MONDAY) is the last Monday in the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth specifies the day of the month, regardless of what day of the week it is. (e.g., (10, 0) is the tenth day of the month)
  • If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth specifies the day of the month counting backward from the end of the month, regardless of what day of the week it is (e.g., (-2, 0) is the next-to-last day of the month).
  • If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the first specified day of the week on or after the specfied day of the month. (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month [or the 15th itself if the 15th is a Sunday].)
  • If dayOfWeek and DayOfWeekInMonth are both negative, they specify the last specified day of the week on or before the specified day of the month. (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month [or the 20th itself if the 20th is a Tuesday].)
Parameters
monththe daylight savings starting month. Month is 0-based. eg, 0 for January.
dayOfWeekInMonththe daylight savings starting day-of-week-in-month. Please see the member description for an example.
dayOfWeekthe daylight savings starting day-of-week. Please see the member description for an example.
timethe daylight savings starting time. Please see the member description for an example.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setStartRule() [3/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  time,
UErrorCode status 
)
inline

Sets the DST start rule to a fixed date within a month.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthThe date in that month (1-based).
timeThe time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 898 of file simpletz.h.

◆ setStartRule() [4/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  time,
TimeMode  mode,
UErrorCode status 
)

Sets the DST start rule to a fixed date within a month.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthThe date in that month (1-based).
timeThe time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setStartRule() [5/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  dayOfWeek,
int32_t  time,
UBool  after,
UErrorCode status 
)
inline

Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthA date within that month (1-based).
dayOfWeekThe day of the week on which this rule occurs.
timeThe time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
afterIf true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
statusAn UErrorCode
Stable:
ICU 2.0

Definition at line 904 of file simpletz.h.

◆ setStartRule() [6/6]

void icu::SimpleTimeZone::setStartRule ( int32_t  month,
int32_t  dayOfMonth,
int32_t  dayOfWeek,
int32_t  time,
TimeMode  mode,
UBool  after,
UErrorCode status 
)

Sets the DST start rule to a weekday before or after a give date within a month, e.g., the first Monday on or after the 8th.

Parameters
monthThe month in which this rule occurs (0-based).
dayOfMonthA date within that month (1-based).
dayOfWeekThe day of the week on which this rule occurs.
timeThe time of that day (number of millis after midnight) when DST takes effect in local wall time, which is standard time in this case.
modewhether the time is local wall time, local standard time, or UTC time. Default is local wall time.
afterIf true, this rule selects the first dayOfWeek on or after dayOfMonth. If false, this rule selects the last dayOfWeek on or before dayOfMonth.
statusAn UErrorCode
Stable:
ICU 2.0

◆ setStartYear()

void icu::SimpleTimeZone::setStartYear ( int32_t  year)

Sets the daylight savings starting year, that is, the year this time zone began observing its specified daylight savings time rules.

The time zone is considered not to observe daylight savings time prior to that year; SimpleTimeZone doesn't support historical daylight-savings-time rules.

Parameters
yearthe daylight savings starting year.
Stable:
ICU 2.0

◆ useDaylightTime()

virtual UBool icu::SimpleTimeZone::useDaylightTime ( void  ) const
virtual

Queries if this TimeZone uses Daylight Savings Time.

Returns
True if this TimeZone uses Daylight Savings Time; false otherwise.
Stable:
ICU 2.0

Implements icu::TimeZone.


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