Skip to content

Most visited

Recently visited

navigation
Added in API level 1

TimeZone

public abstract class TimeZone
extends Object implements Serializable, Cloneable

java.lang.Object
   ↳ java.util.TimeZone
Known Direct Subclasses


TimeZone represents a time zone, primarily used for configuring a Calendar or SimpleDateFormat instance.

Most applications will use getDefault() which returns a TimeZone based on the time zone where the program is running.

You can also get a specific TimeZone by Olson ID.

It is highly unlikely you'll ever want to use anything but the factory methods yourself. Let classes like Calendar and SimpleDateFormat do the date computations for you.

If you do need to do date computations manually, there are two common cases to take into account:

Note the type returned by the factory methods getDefault() and getTimeZone(String) is implementation dependent. This may introduce serialization incompatibility issues between different implementations, or different versions of Android.

See also:

Summary

Constants

int LONG

The long display name style, such as Pacific Daylight Time.

int SHORT

The short display name style, such as PDT.

Public constructors

TimeZone()

Public methods

Object clone()

Returns a new time zone with the same ID, raw offset, and daylight savings time rules as this time zone.

static String[] getAvailableIDs()

Returns the system's installed time zone IDs.

static String[] getAvailableIDs(int offsetMillis)

Returns the IDs of the time zones whose offset from UTC is offsetMillis.

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

static TimeZone getDefault()

Returns the user's preferred time zone.

final String getDisplayName(Locale locale)

Equivalent to getDisplayName(false, TimeZone.LONG, locale).

String getDisplayName(boolean daylightTime, int style, Locale locale)

Returns the short or long name of this time zone with either standard or daylight time, as written in locale.

final String getDisplayName()

Equivalent to getDisplayName(false, TimeZone.LONG, Locale.getDefault()).

final String getDisplayName(boolean daylightTime, int style)

Equivalent to getDisplayName(daylightTime, style, Locale.getDefault()).

String getID()

Returns the ID of this TimeZone, such as America/Los_Angeles, GMT-08:00 or UTC.

abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int timeOfDayMillis)

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.

abstract int getRawOffset()

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

static TimeZone getTimeZone(String id)

Returns a TimeZone corresponding to the given id, or GMT for unknown ids.

boolean hasSameRules(TimeZone timeZone)

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

abstract boolean inDaylightTime(Date time)

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

static void setDefault(TimeZone timeZone)

Overrides the default time zone for the current process only.

void setID(String id)

Sets the ID of this TimeZone.

abstract void setRawOffset(int offsetMillis)

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

abstract boolean useDaylightTime()

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

Inherited methods

From class java.lang.Object

Constants

LONG

Added in API level 1
int LONG

The long display name style, such as Pacific Daylight Time. Requests for this style may yield GMT offsets like GMT-08:00.

Constant Value: 1 (0x00000001)

SHORT

Added in API level 1
int SHORT

The short display name style, such as PDT. Requests for this style may yield GMT offsets like GMT-08:00.

Constant Value: 0 (0x00000000)

Public constructors

TimeZone

Added in API level 1
TimeZone ()

Public methods

clone

Added in API level 1
Object clone ()

Returns a new time zone with the same ID, raw offset, and daylight savings time rules as this time zone.

Returns
Object a copy of this object.

getAvailableIDs

Added in API level 1
String[] getAvailableIDs ()

Returns the system's installed time zone IDs. Any of these IDs can be passed to getTimeZone(String) to lookup the corresponding time zone instance.

Returns
String[]

getAvailableIDs

Added in API level 1
String[] getAvailableIDs (int offsetMillis)

Returns the IDs of the time zones whose offset from UTC is offsetMillis. Any of these IDs can be passed to getTimeZone(String) to lookup the corresponding time zone instance.

Parameters
offsetMillis int
Returns
String[] a possibly-empty array.

getDSTSavings

Added in API level 1
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()).

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.

Returns
int

getDefault

Added in API level 1
TimeZone getDefault ()

Returns the user's preferred time zone. This may have been overridden for this process with setDefault(TimeZone).

Since the user's time zone changes dynamically, avoid caching this value. Instead, use this method to look it up for each use.

Returns
TimeZone

getDisplayName

Added in API level 1
String getDisplayName (Locale locale)

Equivalent to getDisplayName(false, TimeZone.LONG, locale).

Parameters
locale Locale
Returns
String

getDisplayName

Added in API level 1
String getDisplayName (boolean daylightTime, 
                int style, 
                Locale locale)

Returns the short or long name of this time zone with either standard or daylight time, as written in locale. If the name is not available, the result is in the format GMT[+-]hh:mm.

Parameters
daylightTime boolean: true for daylight time, false for standard time.
style int: either LONG or SHORT.
locale Locale: the display locale.
Returns
String

getDisplayName

Added in API level 1
String getDisplayName ()

Equivalent to getDisplayName(false, TimeZone.LONG, Locale.getDefault()). Be wary of the default locale.

Returns
String

getDisplayName

Added in API level 1
String getDisplayName (boolean daylightTime, 
                int style)

Equivalent to getDisplayName(daylightTime, style, Locale.getDefault()). Be wary of the default locale.

Parameters
daylightTime boolean
style int
Returns
String

getID

Added in API level 1
String getID ()

Returns the ID of this TimeZone, such as America/Los_Angeles, GMT-08:00 or UTC.

Returns
String

getOffset

Added in API level 1
int getOffset (int era, 
                int year, 
                int month, 
                int day, 
                int dayOfWeek, 
                int timeOfDayMillis)

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.

Parameters
era int
year int
month int
day int
dayOfWeek int
timeOfDayMillis int
Returns
int

getOffset

Added in API level 1
int getOffset (long time)

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 long: the date in milliseconds since January 1, 1970 00:00:00 UTC
Returns
int

getRawOffset

Added in API level 1
int getRawOffset ()

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

Returns
int

getTimeZone

Added in API level 1
TimeZone getTimeZone (String id)

Returns a TimeZone corresponding to the given id, or GMT for unknown ids.

An ID can be an Olson name of the form Area/Location, such as America/Los_Angeles. The getAvailableIDs() method returns the supported names.

This method can also create a custom TimeZone given an ID with the following syntax: GMT[+|-]hh[[:]mm]. For example, "GMT+05:00", "GMT+0500", "GMT+5:00", "GMT+500", "GMT+05", and "GMT+5" all return an object with a raw offset of +5 hours from UTC, and which does not use daylight savings. These are rarely useful, because they don't correspond to time zones actually in use by humans.

Other than the special cases "UTC" and "GMT" (which are synonymous in this context, both corresponding to UTC), Android does not support the deprecated three-letter time zone IDs used in Java 1.1.

Parameters
id String
Returns
TimeZone

hasSameRules

Added in API level 1
boolean hasSameRules (TimeZone timeZone)

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.

Parameters
timeZone TimeZone
Returns
boolean

inDaylightTime

Added in API level 1
boolean inDaylightTime (Date time)

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

Parameters
time Date
Returns
boolean

setDefault

Added in API level 1
void setDefault (TimeZone timeZone)

Overrides the default time zone for the current process only.

Warning: avoid using this method to use a custom time zone in your process. This value may be cleared or overwritten at any time, which can cause unexpected behavior. Instead, manually supply a custom time zone as needed.

Parameters
timeZone TimeZone: a custom time zone, or null to set the default to the user's preferred value.

setID

Added in API level 1
void setID (String id)

Sets the ID of this TimeZone.

Parameters
id String

setRawOffset

Added in API level 1
void setRawOffset (int offsetMillis)

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

Parameters
offsetMillis int

useDaylightTime

Added in API level 1
boolean useDaylightTime ()

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.

Returns
boolean
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.