TimeZone
represents a time zone offset, and also figures out daylight
savings.
Typically, you get a
TimeZone
using
getDefault
which creates a
TimeZone
based on the time zone where the program
is running. For example, for a program running in Japan,
getDefault
creates a
TimeZone
object based on Japanese Standard Time.
You can also get a
TimeZone
using
getTimeZone
along with a time zone ID. For instance, the time zone ID for the
U.S. Pacific Time zone is "America/Los_Angeles". So, you can get a
U.S. Pacific Time
TimeZone
object with:
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
You can use
getAvailableIDs
method to iterate through
all the supported time zone IDs. You can then choose a
supported ID to get a
TimeZone
.
If the time zone you want is not represented by one of the
supported IDs, then you can create a custom time zone ID with
the following syntax:
GMT[+|-]hh[[:]mm]
For example, you might specify GMT+14:00 as a custom
time zone ID. The
TimeZone
that is returned
when you specify a custom time zone ID does not include
daylight savings time.
For compatibility with JDK 1.1.x, some other three-letter time zone IDs
(such as "PST", "CTT", "AST") are also supported. However,
their
use is deprecated because the same abbreviation is often used
for multiple time zones (for example, "CST" could be U.S. "Central Standard
Time" and "China Standard Time"), and the Java platform can then only
recognize one of them.
clone
public Object clone()
Overrides Cloneable
countEquivalentIDs
public static int countEquivalentIDs(String id)
Returns the number of IDs in the equivalency group that
includes the given ID. An equivalency group contains zones
that have the same GMT offset and rules.
The returned count includes the given ID; it is always >= 1
for valid IDs. The given ID must be a system time zone. If it
is not, returns zero.
id
- a system time zone ID
- the number of zones in the equivalency group containing
'id', or zero if 'id' is not a valid system ID
equals
public boolean equals(Object obj)
Return true if obj is a TimeZone with the same class and ID as this.
obj
- the object to compare against
- true if obj is a TimeZone with the same class and ID as this
getAvailableIDs
public static String[] getAvailableIDs()
Return a new String array containing all system TimeZone IDs.
These IDs (and only these IDs) may be passed to
get()
to construct the corresponding TimeZone
object.
- an array of all system TimeZone IDs
getAvailableIDs
public static String[] getAvailableIDs(String country)
Return a new String array containing all system TimeZone IDs
associated with the given country. These IDs may be passed to
get()
to construct the corresponding TimeZone
object.
country
- a two-letter ISO 3166 country code, or null
to return zones not associated with any country
- an array of IDs for system TimeZones in the given
country. If there are none, return a zero-length array.
getAvailableIDs
public static String[] getAvailableIDs(int rawOffset)
Return a new String array containing all system TimeZone IDs
with the given raw offset from GMT. These IDs may be passed to
get()
to construct the corresponding TimeZone
object.
rawOffset
- the offset in milliseconds from GMT
- an array of IDs for system TimeZones with the given
raw offset. If there are none, return a zero-length array.
getDSTSavings
public int getDSTSavings()
Returns the amount of time to be added to local standard time
to get local wall clock time.
The default implementation always returns 3600000 milliseconds
(i.e., one hour) if this time zone observes Daylight Saving
Time. Otherwise, 0 (zero) is returned.
If an underlying TimeZone implementation subclass supports
historical Daylight Saving Time changes, this method returns
the known latest daylight saving value.
- the amount of saving time in milliseconds
getDefault
public static TimeZone getDefault()
Gets the default TimeZone
for this host.
The source of the default TimeZone
may vary with implementation.
getDisplayName
public final String getDisplayName()
Returns a name of this time zone suitable for presentation to the user
in the default locale.
This method returns the long generic name.
If the display name is not available for the locale,
a fallback based on the country, city, or time zone id will be used.
- the human-readable name of this time zone in the default locale.
getDisplayName
public final String getDisplayName(Locale locale)
Returns a name of this time zone suitable for presentation to the user
in the specified locale.
This method returns the long generic name.
If the display name is not available for the locale,
a fallback based on the country, city, or time zone id will be used.
locale
- the locale in which to supply the display name.
- the human-readable name of this time zone in the given locale
or in the default locale if the given locale is not recognized.
getDisplayName
public final String getDisplayName(boolean daylight,
int style)
Returns a name of this time zone suitable for presentation to the user
in the default locale.
If the display name is not available for the locale,
then this method returns a string in the format
GMT[+-]hh:mm
.
daylight
- if true, return the daylight savings name.style
- either LONG
or SHORT
- the human-readable name of this time zone in the default locale.
getDisplayName
public String getDisplayName(boolean daylight,
int style,
Locale locale)
Returns a name of this time zone suitable for presentation to the user
in the specified locale.
If the display name is not available for the locale,
then this method returns a string in the format
GMT[+-]hh:mm
.
daylight
- if true, return the daylight savings name.style
- either LONG
or SHORT
locale
- the locale in which to supply the display name.
- the human-readable name of this time zone in the given locale
or in the default locale if the given locale is not recognized.
getDisplayName
public String getDisplayName(boolean daylight,
int style,
ULocale locale)
Returns a name of this time zone suitable for presentation to the user
in the specified locale.
If the display name is not available for the locale,
then this method returns a string in the format
GMT[+-]hh:mm
.
daylight
- if true, return the daylight savings name.style
- either LONG
or SHORT
locale
- the locale in which to supply the display name.
- the human-readable name of this time zone in the given locale
or in the default locale if the given locale is not recognized.
getDisplayName
public final String getDisplayName(ULocale locale)
Returns a name of this time zone suitable for presentation to the user
in the specified locale.
This method returns the long name, not including daylight savings.
If the display name is not available for the locale,
a fallback based on the country, city, or time zone id will be used.
locale
- the ulocale in which to supply the display name.
- the human-readable name of this time zone in the given locale
or in the default ulocale if the given ulocale is not recognized.
getEquivalentID
public static String getEquivalentID(String id,
int index)
Returns an ID in the equivalency group that
includes the given ID. An equivalency group contains zones
that have the same GMT offset and rules.
The given index must be in the range 0..n-1, where n is the
value returned by
countEquivalentIDs(id)
. For
some value of 'index', the returned value will be equal to the
given id. If the given id is not a valid system time zone, or
if 'index' is out of range, then returns an empty string.
id
- a system time zone IDindex
- a value from 0 to n-1, where n is the value
returned by countEquivalentIDs(id)
- the ID of the index-th zone in the equivalency group
containing 'id', or an empty string if 'id' is not a valid
system ID or 'index' is out of range
getID
public String getID()
Gets the ID of this time zone.
- the ID of this time zone.
getOffset
public abstract int getOffset(int era,
int year,
int month,
int day,
int dayOfWeek,
int milliseconds)
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.
era
- the era of the given date.year
- the year in the given date.month
- the month in the given date.
Month is 0-based. e.g., 0 for January.day
- the day-in-month of the given date.dayOfWeek
- the day-of-week of the given date.milliseconds
- the millis in day in standard local time.
- the offset to add *to* GMT to get local time.
getOffset
public int getOffset(long date)
Returns the offset of this time zone from UTC at the specified
date. If Daylight Saving Time is in effect at the specified
date, the offset value is adjusted with the amount of daylight
saving.
date
- the date represented in milliseconds since January 1, 1970 00:00:00 GMT
- the amount of time in milliseconds to add to UTC to get local time.
getOffset
public void getOffset(long date,
boolean local,
int[] offsets)
Returns the time zone raw and GMT offset for the given moment
in time. Upon return, local-millis = GMT-millis + rawOffset +
dstOffset. All computations are performed in the proleptic
Gregorian calendar. The default implementation in the TimeZone
class delegates to the 8-argument getOffset().
date
- moment in time for which to return offsets, in
units of milliseconds from January 1, 1970 0:00 GMT, either GMT
time or local wall time, depending on `local'.local
- if true, `date' is local wall time; otherwise it
is in GMT time.offsets
- output parameter to receive the raw offset, that
is, the offset not including DST adjustments, in offsets[0],
and the DST offset, that is, the offset to be added to
`rawOffset' to obtain the total offset between local and GMT
time, in offsets[1]. If DST is not in effect, the DST offset is
zero; otherwise it is a positive value, typically one hour.
getRawOffset
public abstract int getRawOffset()
Gets unmodified offset, NOT modified in case of daylight savings.
This is the offset to add *to* UTC to get local time.
- the unmodified offset to add *to* UTC to get local time.
getTimeZone
public static TimeZone getTimeZone(String ID)
Gets the TimeZone
for the given ID.
ID
- the ID for a TimeZone
, either an abbreviation
such as "PST", a full name such as "America/Los_Angeles", or a custom
ID such as "GMT-8:00". Note that the support of abbreviations is
for JDK 1.1.x compatibility only and full names should be used.
- the specified
TimeZone
, or the GMT zone if the given ID
cannot be understood.
hasSameRules
public boolean hasSameRules(TimeZone other)
Returns true if this zone has the same rule and offset as another zone.
That is, if this zone differs only in ID, if at all. Returns false
if the other zone is null.
other
- the TimeZone
object to be compared with
- true if the other zone is not null and is the same as this one,
with the possible exception of the ID
hashCode
public int hashCode()
Return the hash code.
inDaylightTime
public abstract boolean inDaylightTime(Date date)
Queries if the given date is in daylight savings time in
this time zone.
- true if the given date is in daylight savings time,
false, otherwise.
setDefault
public static void setDefault(TimeZone tz)
Sets the TimeZone
that is
returned by the getDefault
method. If zone
is null, reset the default to the value it had originally when the
VM first started.
tz
- the new default time zone
setID
public void setID(String ID)
Sets the time zone ID. This does not change any other data in
the time zone object.
ID
- the new time zone ID.
setRawOffset
public abstract void setRawOffset(int offsetMillis)
Sets the base time zone offset to GMT.
This is the offset to add *to* UTC to get local time.
offsetMillis
- the given base time zone offset to GMT.
useDaylightTime
public abstract boolean useDaylightTime()
Queries if this time zone uses daylight savings time.
- true if this time zone uses daylight savings time,
false, otherwise.