to top
Android APIs
public class

SimpleTimeZone

extends TimeZone
java.lang.Object
   ↳ java.util.TimeZone
     ↳ java.util.SimpleTimeZone

Class Overview

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.

Summary

Constants
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.
int UTC_TIME The constant for representing a start or end time in GMT time mode.
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.
[Expand]
Inherited Constants
From class java.util.TimeZone
Public Constructors
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.
Public Methods
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 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.
boolean hasSameRules(TimeZone zone)
Returns true if timeZone has the same rules as this time zone.
synchronized int hashCode()
Returns an integer hash code for the receiver.
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 day, int dayOfWeek, int time)
Sets the rule which specifies the end of daylight savings time.
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, 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 day, int dayOfWeek, int time, boolean after)
Sets the rule which specifies the start of daylight savings time.
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 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.
[Expand]
Inherited Methods
From class java.util.TimeZone
From class java.lang.Object

Constants

public static final int STANDARD_TIME

Added in API level 1

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.

Constant Value: 1 (0x00000001)

public static final int UTC_TIME

Added in API level 1

The constant for representing a start or end time in GMT time mode.

Constant Value: 2 (0x00000002)

public static final int WALL_TIME

Added in API level 1

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.

Constant Value: 0 (0x00000000)

Public Constructors

public SimpleTimeZone (int offset, String name)

Added in API level 1

Constructs a 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.

Parameters
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)

Added in API level 1

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

Parameters
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.
Throws
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)

Added in API level 1

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.

Parameters
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.
Throws
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)

Added in API level 1

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. The mode specifies either WALL_TIME, STANDARD_TIME, or UTC_TIME.

Parameters
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.
endMonth the daylight savings ending month. The month indexing is 0-based. eg, 0 for January.
endDay the day of the week on which daylight savings time ends.
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.
Throws
IllegalArgumentException if the month, day, dayOfWeek, or time parameters are out of range for the start or end rule.

Public Methods

public Object clone ()

Added in API level 1

Returns a new SimpleTimeZone with the same ID, rawOffset and daylight savings time rules as this SimpleTimeZone.

Returns
  • a shallow copy of this SimpleTimeZone.
See Also

public boolean equals (Object object)

Added in API level 1

Compares the specified object to this SimpleTimeZone and returns whether they are equal. The object must be an instance of SimpleTimeZone and have the same internal data.

Parameters
object the object to compare with this object.
Returns
  • true if the specified object is equal to this SimpleTimeZone, false otherwise.
See Also

public int getDSTSavings ()

Added in API level 1

Returns the latest daylight savings in milliseconds for this time zone, relative to this time zone's regular UTC offset (as returned by 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 getOffset(int, int, int, int, int, int) instead, which tells you the offset for a specific point in time, and takes daylight savings into account for you.

public int getOffset (int era, int year, int month, int day, int dayOfWeek, int time)

Added in API level 1

Returns this time zone's offset in milliseconds from UTC at the specified date and time. The offset includes daylight savings time if the date and time is within the daylight savings time period.

This method is intended to be used by Calendar to compute DST_OFFSET and 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)

Added in API level 1

Returns the offset in milliseconds from UTC for this time zone at time. The offset includes daylight savings time if the specified date is within the daylight savings time period.

Parameters
time the date in milliseconds since January 1, 1970 00:00:00 UTC

public int getRawOffset ()

Added in API level 1

Returns the offset in milliseconds from UTC of this time zone's standard time.

public boolean hasSameRules (TimeZone zone)

Added in API level 1

Returns true if timeZone has the same rules as this time zone.

The base implementation returns true if both time zones have the same raw offset.

public synchronized int hashCode ()

Added in API level 1

Returns an integer hash code for the receiver. Objects which are equal return the same value for this method.

Returns
  • the receiver's hash.
See Also

public boolean inDaylightTime (Date time)

Added in API level 1

Returns true if time is in a daylight savings time period for this time zone.

public void setDSTSavings (int milliseconds)

Added in API level 1

Sets the daylight savings offset in milliseconds for this SimpleTimeZone.

Parameters
milliseconds the daylight savings offset in milliseconds.

public void setEndRule (int month, int day, int dayOfWeek, int time)

Added in API level 1

Sets the rule which specifies the end of daylight savings time.

Parameters
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 dayOfMonth, int time)

Added in API level 1

Sets the rule which specifies the end of daylight savings time.

Parameters
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, boolean after)

Added in API level 1

Sets the rule which specifies the end of daylight savings time.

Parameters
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)

Added in API level 1

Sets the offset for standard time from GMT for this SimpleTimeZone.

Parameters
offset the offset from GMT of standard time in milliseconds.

public void setStartRule (int month, int day, int dayOfWeek, int time, boolean after)

Added in API level 1

Sets the rule which specifies the start of daylight savings time.

Parameters
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 setStartRule (int month, int dayOfMonth, int time)

Added in API level 1

Sets the rule which specifies the start of daylight savings time.

Parameters
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)

Added in API level 1

Sets the rule which specifies the start of daylight savings time.

Parameters
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 setStartYear (int year)

Added in API level 1

Sets the starting year for daylight savings time in this SimpleTimeZone. Years before this start year will always be in standard time.

Parameters
year the starting year.

public String toString ()

Added in API level 1

Returns the string representation of this SimpleTimeZone.

Returns
  • the string representation of this SimpleTimeZone.

public boolean useDaylightTime ()

Added in API level 1

Returns true if this time zone has a future transition to or from daylight savings time.

Warning: 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 inDaylightTime(Date) to find out whether daylight savings is in effect at a specific time.

Most applications should not use this method.