public class SimpleTimeZone extends TimeZone
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.
Use a negative value for dayOfWeekInMonth to indicate that
SimpleTimeZone should count from the end of the month
backwards. For example, Daylight Savings Time ends at the last
(dayOfWeekInMonth = -1) Sunday in October, at 2 AM in standard time.
Calendar,
GregorianCalendar,
TimeZone,
Serialized Form| Modifier and Type | Field and Description |
|---|---|
static int |
STANDARD_TIME
The constant for representing a start or end time in standard local time mode,
based on timezone's raw offset from GMT; does not include Daylight
savings.
|
static int |
UTC_TIME
The constant for representing a start or end time in GMT time mode.
|
static int |
WALL_TIME
The constant for representing a start or end time in local wall clock time
mode, based on timezone's adjusted offset from GMT; includes
Daylight savings.
|
| Constructor and Description |
|---|
SimpleTimeZone(int offset,
String name)
Constructs a
SimpleTimeZone with the given base time zone offset from GMT
and time zone ID. |
SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime)
Constructs a
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, and times to start and end the daylight savings time. |
SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime,
int daylightSavings)
Constructs a
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, times to start and end the daylight savings time, and
the daylight savings time difference in milliseconds. |
SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int startTimeMode,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime,
int endTimeMode,
int daylightSavings)
Construct a
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, times to start and end the daylight savings time including a
mode specifier, the daylight savings time difference in milliseconds. |
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
Returns a new
SimpleTimeZone with the same ID, rawOffset and daylight
savings time rules as this SimpleTimeZone. |
boolean |
equals(Object object)
Compares the specified object to this
SimpleTimeZone and returns whether they
are equal. |
int |
getDSTSavings()
Returns the latest daylight savings in milliseconds for this time zone, relative
to this time zone's regular UTC offset (as returned by
TimeZone.getRawOffset()). |
int |
getOffset(int era,
int year,
int month,
int day,
int dayOfWeek,
int time)
Returns this time zone's offset in milliseconds from UTC at the specified
date and time.
|
int |
getOffset(long time)
Returns the offset in milliseconds from UTC for this time zone at
time. |
int |
getRawOffset()
Returns the offset in milliseconds from UTC of this time zone's standard
time.
|
int |
hashCode()
Returns an integer hash code for the receiver.
|
boolean |
hasSameRules(TimeZone zone)
Returns true if
timeZone has the same rules as this time zone. |
boolean |
inDaylightTime(Date time)
Returns true if
time is in a daylight savings time period for
this time zone. |
void |
setDSTSavings(int milliseconds)
Sets the daylight savings offset in milliseconds for this
SimpleTimeZone. |
void |
setEndRule(int month,
int dayOfMonth,
int time)
Sets the rule which specifies the end of daylight savings time.
|
void |
setEndRule(int month,
int day,
int dayOfWeek,
int time)
Sets the rule which specifies the end of daylight savings time.
|
void |
setEndRule(int month,
int day,
int dayOfWeek,
int time,
boolean after)
Sets the rule which specifies the end of daylight savings time.
|
void |
setRawOffset(int offset)
Sets the offset for standard time from GMT for this
SimpleTimeZone. |
void |
setStartRule(int month,
int dayOfMonth,
int time)
Sets the rule which specifies the start of daylight savings time.
|
void |
setStartRule(int month,
int day,
int dayOfWeek,
int time)
Sets the rule which specifies the start of daylight savings time.
|
void |
setStartRule(int month,
int day,
int dayOfWeek,
int time,
boolean after)
Sets the rule which specifies the start of daylight savings time.
|
void |
setStartYear(int year)
Sets the starting year for daylight savings time in this
SimpleTimeZone. |
String |
toString()
Returns the string representation of this
SimpleTimeZone. |
boolean |
useDaylightTime()
Returns true if this time zone has a future transition to or from
daylight savings time.
|
createGmtOffsetString, getAvailableIDs, getAvailableIDs, getDefault, getDisplayName, getDisplayName, getDisplayName, getDisplayName, getID, getTimeZone, getTimeZone, setDefault, setID, toZoneIdpublic static final int UTC_TIME
public static final int STANDARD_TIME
public static final int WALL_TIME
public SimpleTimeZone(int offset,
String name)
SimpleTimeZone with the given base time zone offset from GMT
and time zone ID. Timezone IDs can be obtained from
TimeZone.getAvailableIDs. Normally you should use TimeZone.getDefault to
construct a TimeZone.offset - the given base time zone offset to GMT.name - the time zone ID which is obtained from
TimeZone.getAvailableIDs.public SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime)
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, and times to start and end the daylight savings time. Timezone IDs can
be obtained from TimeZone.getAvailableIDs. Normally you should use
TimeZone.getDefault to create a TimeZone. For a time zone that does not
use daylight saving time, do not use this constructor; instead you should
use SimpleTimeZone(rawOffset, ID).
By default, this constructor specifies day-of-week-in-month rules. That
is, if the startDay is 1, and the startDayOfWeek is SUNDAY, then this
indicates the first Sunday in the startMonth. A startDay of -1 likewise
indicates the last Sunday. However, by using negative or zero values for
certain parameters, other types of rules can be specified.
Day of month: To specify an exact day of the month, such as March 1, set
startDayOfWeek to zero.
Day of week after day of month: To specify the first day of the week
occurring on or after an exact day of the month, make the day of the week
negative. For example, if startDay is 5 and startDayOfWeek is -MONDAY,
this indicates the first Monday on or after the 5th day of the
startMonth.
Day of week before day of month: To specify the last day of the week
occurring on or before an exact day of the month, make the day of the
week and the day of the month negative. For example, if startDay is -21
and startDayOfWeek is -WEDNESDAY, this indicates the last Wednesday on or
before the 21st of the startMonth.
The above examples refer to the startMonth, startDay, and startDayOfWeek;
the same applies for the endMonth, endDay, and endDayOfWeek.
The daylight savings time difference is set to the default value: one hour.
offset - the given base time zone offset to GMT.name - the time zone ID which is obtained from
TimeZone.getAvailableIDs.startMonth - the daylight savings starting month. The month indexing is 0-based. eg, 0
for January.startDay - the daylight savings starting day-of-week-in-month. Please see
the member description for an example.startDayOfWeek - the daylight savings starting day-of-week. Please see the
member description for an example.startTime - the daylight savings starting time in local wall time, which
is standard time in this case. Please see the member
description for an example.endMonth - the daylight savings ending month. The month indexing is 0-based. eg, 0 for
January.endDay - the daylight savings ending day-of-week-in-month. Please see
the member description for an example.endDayOfWeek - the daylight savings ending day-of-week. Please see the member
description for an example.endTime - the daylight savings ending time in local wall time, which is
daylight time in this case. Please see the member description
for an example.IllegalArgumentException - if the month, day, dayOfWeek, or time parameters are out of
range for the start or end rule.public SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime,
int daylightSavings)
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, times to start and end the daylight savings time, and
the daylight savings time difference in milliseconds.offset - the given base time zone offset to GMT.name - the time zone ID which is obtained from
TimeZone.getAvailableIDs.startMonth - the daylight savings starting month. Month is 0-based. eg, 0
for January.startDay - the daylight savings starting day-of-week-in-month. Please see
the description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.startDayOfWeek - the daylight savings starting day-of-week. Please see the
description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.startTime - The daylight savings starting time in local wall time, which
is standard time in this case. Please see the description of
SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.endMonth - the daylight savings ending month. Month is 0-based. eg, 0 for
January.endDay - the daylight savings ending day-of-week-in-month. Please see
the description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.endDayOfWeek - the daylight savings ending day-of-week. Please see the description of
SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.endTime - the daylight savings ending time in local wall time, which is
daylight time in this case. Please see the description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int)
for an example.daylightSavings - the daylight savings time difference in milliseconds.IllegalArgumentException - if the month, day, dayOfWeek, or time parameters are out of
range for the start or end rule.public SimpleTimeZone(int offset,
String name,
int startMonth,
int startDay,
int startDayOfWeek,
int startTime,
int startTimeMode,
int endMonth,
int endDay,
int endDayOfWeek,
int endTime,
int endTimeMode,
int daylightSavings)
SimpleTimeZone with the given base time zone offset from GMT,
time zone ID, times to start and end the daylight savings time including a
mode specifier, the daylight savings time difference in milliseconds.
The mode specifies either WALL_TIME, STANDARD_TIME, or
UTC_TIME.offset - the given base time zone offset to GMT.name - the time zone ID which is obtained from
TimeZone.getAvailableIDs.startMonth - the daylight savings starting month. The month indexing is 0-based. eg, 0
for January.startDay - the daylight savings starting day-of-week-in-month. Please see
the description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.startDayOfWeek - the daylight savings starting day-of-week. Please see the
description of SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.startTime - the time of day in milliseconds on which daylight savings
time starts, based on the startTimeMode.startTimeMode - the mode (UTC, standard, or wall time) of the start time
value.endDay - the day of the week on which daylight savings time ends.endMonth - the daylight savings ending month. The month indexing is 0-based. eg, 0 for
January.endDayOfWeek - the daylight savings ending day-of-week. Please see the description of
SimpleTimeZone(int, String, int, int, int, int, int, int, int, int) for an example.endTime - the time of day in milliseconds on which daylight savings
time ends, based on the endTimeMode.endTimeMode - the mode (UTC, standard, or wall time) of the end time value.daylightSavings - the daylight savings time difference in milliseconds.IllegalArgumentException - if the month, day, dayOfWeek, or time parameters are out of
range for the start or end rule.public Object clone()
SimpleTimeZone with the same ID, rawOffset and daylight
savings time rules as this SimpleTimeZone.public boolean equals(Object object)
SimpleTimeZone and returns whether they
are equal. The object must be an instance of SimpleTimeZone and have the
same internal data.equals in class Objectobject - the object to compare with this object.true if the specified object is equal to this
SimpleTimeZone, false otherwise.hashCode()public int getDSTSavings()
TimeZoneTimeZone.getRawOffset()).
This class returns 3600000 (1 hour) for time zones
that use daylight savings time and 0 for timezones that do not,
leaving it to subclasses to override this method for other daylight savings
offsets. (There are time zones, such as Australia/Lord_Howe,
that use other values.)
Note that this method doesn't tell you whether or not to apply the
offset: you need to call inDaylightTime for the specific time
you're interested in. If this method returns a non-zero offset, that only
tells you that this TimeZone sometimes observes daylight savings.
Note also that this method doesn't necessarily return the value you need to apply to the time you're working with. This value can and does change over time for a given time zone.
It's highly unlikely that you should ever call this method. You
probably want TimeZone.getOffset(long) instead, which tells you the offset
for a specific point in time, and takes daylight savings into account for you.
getDSTSavings in class TimeZonepublic int getOffset(int era,
int year,
int month,
int day,
int dayOfWeek,
int time)
TimeZoneThis method is intended to be used by Calendar to compute
Calendar.DST_OFFSET and Calendar.ZONE_OFFSET. Application
code should have no reason to call this method directly. Each parameter
is interpreted in the same way as the corresponding Calendar
field. Refer to Calendar for specific definitions of this
method's parameters.
public int getOffset(long time)
TimeZonetime. The offset includes daylight savings time if the specified
date is within the daylight savings time period.public int getRawOffset()
TimeZonegetRawOffset in class TimeZonepublic int hashCode()
hashCode in class Objectequals(java.lang.Object)public boolean hasSameRules(TimeZone zone)
TimeZonetimeZone has the same rules as this time zone.
The base implementation returns true if both time zones have the same raw offset.
hasSameRules in class TimeZonepublic boolean inDaylightTime(Date time)
TimeZonetime is in a daylight savings time period for
this time zone.inDaylightTime in class TimeZonepublic void setDSTSavings(int milliseconds)
SimpleTimeZone.milliseconds - the daylight savings offset in milliseconds.public void setEndRule(int month,
int dayOfMonth,
int time)
month - the Calendar month in which daylight savings time ends.dayOfMonth - the Calendar day of the month on which daylight savings time
ends.time - the time of day in milliseconds standard time on which
daylight savings time ends.public void setEndRule(int month,
int day,
int dayOfWeek,
int time)
month - the Calendar month in which daylight savings time ends.day - the occurrence of the day of the week on which daylight
savings time ends.dayOfWeek - the Calendar day of the week on which daylight savings time
ends.time - the time of day in milliseconds standard time on which
daylight savings time ends.public void setEndRule(int month,
int day,
int dayOfWeek,
int time,
boolean after)
month - the Calendar month in which daylight savings time ends.day - the Calendar day of the month.dayOfWeek - the Calendar day of the week on which daylight savings time
ends.time - the time of day in milliseconds on which daylight savings time
ends.after - selects the day after or before the day of month.public void setRawOffset(int offset)
SimpleTimeZone.setRawOffset in class TimeZoneoffset - the offset from GMT of standard time in milliseconds.public void setStartRule(int month,
int dayOfMonth,
int time)
month - the Calendar month in which daylight savings time starts.dayOfMonth - the Calendar day of the month on which daylight savings time
starts.time - the time of day in milliseconds on which daylight savings time
starts.public void setStartRule(int month,
int day,
int dayOfWeek,
int time)
month - the Calendar month in which daylight savings time starts.day - the occurrence of the day of the week on which daylight
savings time starts.dayOfWeek - the Calendar day of the week on which daylight savings time
starts.time - the time of day in milliseconds on which daylight savings time
starts.public void setStartRule(int month,
int day,
int dayOfWeek,
int time,
boolean after)
month - the Calendar month in which daylight savings time starts.day - the Calendar day of the month.dayOfWeek - the Calendar day of the week on which daylight savings time
starts.time - the time of day in milliseconds on which daylight savings time
starts.after - selects the day after or before the day of month.public void setStartYear(int year)
SimpleTimeZone.
Years before this start year will always be in standard time.year - the starting year.public String toString()
SimpleTimeZone.public boolean useDaylightTime()
TimeZoneWarning: this returns false for time zones like
Asia/Kuala_Lumpur that have previously used DST but do not
currently. A hypothetical country that has never observed daylight
savings before but plans to start next year would return true.
Warning: this returns true for time zones that use DST, even when it is not active.
Use TimeZone.inDaylightTime(java.util.Date) to find out whether daylight savings is
in effect at a specific time.
Most applications should not use this method.
useDaylightTime in class TimeZone