public abstract class TimeZone
extends Object
implements Serializable, Cloneable
java.lang.Object | |
↳ | java.util.TimeZone |
Known Direct Subclasses |
TimeZone
代表时区偏移量,并计算出夏令时。
通常情况下,你会得到一个TimeZone
使用getDefault
它创建了一个TimeZone
基于在程序运行的时区。 例如,对于在日本运行的程序, getDefault
会根据日语标准时间创建一个TimeZone
对象。
您还可以使用getTimeZone
以及时区ID获取TimeZone
。 例如,美国太平洋时区的时区ID是“America / Los_Angeles”。 因此,您可以通过以下方式获得美国太平洋时间TimeZone
对象:
You can use theTimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
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 a custom time zone ID can be specified to produce a TimeZone. The syntax of a custom time zone ID is:
Hours must be between 0 to 23 and Minutes must be between 00 to 59. For example, "GMT+10" and "GMT+0010" mean ten hours and ten minutes ahead of GMT, respectively.CustomID:GMT
Sign Hours:
MinutesGMT
Sign Hours MinutesGMT
Sign Hours Sign: one of+ -
Hours: Digit Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
格式是区域独立的,数字必须来自Unicode标准的基本拉丁块。 可以使用自定义时区ID指定夏令时转换时间表。 如果指定的字符串与语法不匹配,则使用"GMT"
。
创建 TimeZone
,指定的自定义时区标识按照以下语法进行标准化:
For example, TimeZone.getTimeZone("GMT-8").getID() returns "GMT-08:00".NormalizedCustomID:GMT
Sign TwoDigitHours:
Minutes Sign: one of+ -
TwoDigitHours: Digit Digit Minutes: Digit Digit Digit: one of0 1 2 3 4 5 6 7 8 9
Constants |
|
---|---|
int |
LONG
|
int |
SHORT 指定短名称(例如“PST”)的 |
Public constructors |
|
---|---|
TimeZone() 唯一的构造函数。 |
Public methods |
|
---|---|
Object |
clone() 创建此 |
static String[] |
getAvailableIDs() 获取支持的所有可用ID。 |
static String[] |
getAvailableIDs(int rawOffset) 根据给定的时区偏移量以毫秒为单位获取可用ID。 |
int |
getDSTSavings() 返回要添加到本地标准时间以获取本地挂钟时间的时间量。 |
static TimeZone |
getDefault() 获取此主机的默认 |
String |
getDisplayName(boolean daylightTime, int style, Locale locale) |
final String |
getDisplayName(Locale locale) 返回适合在指定的 |
final String |
getDisplayName(boolean daylight, int style) 返回此 |
final String |
getDisplayName() 返回适合以默认语言环境呈现给用户的 |
String |
getID() 获取此时区的ID。 |
int |
getOffset(long date) 从指定日期的UTC返回此时区的偏移量。 |
abstract int |
getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds) 获取当前日期的时区偏移,在夏令时的情况下进行修改。 |
abstract int |
getRawOffset() 返回要添加到UTC以在此时区中获得标准时间的时间量(以毫秒为单位)。 |
static TimeZone |
getTimeZone(String id) 获取给定ID的 |
boolean |
hasSameRules(TimeZone other) 如果此区域与另一个区域具有相同的规则和偏移量,则返回true。 |
abstract boolean |
inDaylightTime(Date date) 查询给定的 |
boolean |
observesDaylightTime() 如果此 |
static void |
setDefault(TimeZone timeZone) 设置 |
void |
setID(String ID) 设置时区ID。 |
abstract void |
setRawOffset(int offsetMillis) 将基准时区偏移量设置为GMT。 |
abstract boolean |
useDaylightTime() 查询此 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int LONG
getDisplayName()
的样式说明符,表示长名称,例如“太平洋标准时间”。
也可以看看:
常数值:1(0x00000001)
String[] getAvailableIDs ()
获取支持的所有可用ID。
Returns | |
---|---|
String[] |
an array of IDs. |
String[] getAvailableIDs (int rawOffset)
根据给定的时区偏移量以毫秒为单位获取可用ID。
Parameters | |
---|---|
rawOffset |
int : the given time zone GMT offset in milliseconds. |
Returns | |
---|---|
String[] |
an array of IDs, where the time zone for that ID has the specified GMT offset. For example, "America/Phoenix" and "America/Denver" both have GMT-07:00, but differ in daylight saving behavior. |
也可以看看:
int getDSTSavings ()
返回要添加到本地标准时间以获取本地挂钟时间的时间量。
如果对useDaylightTime()
的调用返回true
,则默认实现将返回3600000毫秒(即一小时)。 否则,返回0(零)。
如果底层 TimeZone
实现子类支持历史和将来的夏令时时间表更改,则此方法返回可能是未来预测的最后一个已知夏令时规则的保存时间量。
如果需要任何给定时间戳的保存时间量, Calendar
使用此 TimeZone
和时间戳记构造一个 Calendar
,并调用 Calendar.get
(
DST_OFFSET
)
。
Returns | |
---|---|
int |
the amount of saving time in milliseconds |
TimeZone getDefault ()
获取此主机的默认TimeZone
。 默认TimeZone
的来源可能因实现而异。
Returns | |
---|---|
TimeZone |
a default TimeZone . |
也可以看看:
String getDisplayName (boolean daylightTime, int style, Locale locale)
返回short
或者long
与标准或夏令时的时区的名字,写在locale
。 如果名称不可用,结果将采用格式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 |
String getDisplayName (Locale locale)
返回适合在指定的 locale
向用户呈现的此 TimeZone
的长标准时间名称。
这种方法相当于:
getDisplayName(false,LONG
, locale)
Parameters | |
---|---|
locale |
Locale : the locale in which to supply the display name. |
Returns | |
---|---|
String |
the human-readable name of this time zone in the given locale. |
Throws | |
---|---|
NullPointerException |
if locale is null . |
String getDisplayName (boolean daylight, int style)
返回此TimeZone
指定的style
中的名称,该名称适合以默认语言环境呈现给用户。 如果指定的daylight
是true
,则返回夏令时名称(即使此TimeZone
未遵守夏令时)。 否则,返回标准时间名称。
这种方法相当于:
getDisplayName(daylight, style, Locale.getDefault(DISPLAY
))
Parameters | |
---|---|
daylight |
boolean : true specifying a Daylight Saving Time name, or false specifying a Standard Time name |
style |
int : either LONG or SHORT |
Returns | |
---|---|
String |
the human-readable name of this time zone in the default locale. |
Throws | |
---|---|
IllegalArgumentException |
if style is invalid. |
String getDisplayName ()
返回适合以默认语言环境呈现给用户的 TimeZone
的长标准时间名称。
这种方法相当于:
getDisplayName(false,LONG
, Locale.getDefault(DISPLAY
))
Returns | |
---|---|
String |
the human-readable name of this time zone in the default locale. |
int getOffset (long date)
从指定日期的UTC返回此时区的偏移量。 如果夏令时在指定日期生效,则会根据夏令时数量调整偏移值。
如果基础TimeZone实现子类支持历史夏令时时间表和GMT偏移量更改,则此方法返回历史正确的偏移值。
Parameters | |
---|---|
date |
long : the date represented in milliseconds since January 1, 1970 00:00:00 GMT |
Returns | |
---|---|
int |
the amount of time in milliseconds to add to UTC to get local time. |
也可以看看:
int getOffset (int era, int year, int month, int day, int dayOfWeek, int milliseconds)
获取当前日期的时区偏移,在夏令时的情况下进行修改。 这是添加到UTC以获取本地时间的偏移量。
如果基础 TimeZone
实现子类支持历史夏令时时间表和GMT偏移量更改,则此方法返回历史正确的偏移量。
Parameters | |
---|---|
era |
int : the era of the given date. |
year |
int : the year in the given date. |
month |
int : the month in the given date. Month is 0-based. e.g., 0 for January. |
day |
int : the day-in-month of the given date. |
dayOfWeek |
int : the day-of-week of the given date. |
milliseconds |
int : the milliseconds in day in standard local time. |
Returns | |
---|---|
int |
the offset in milliseconds to add to GMT to get local time. |
也可以看看:
int getRawOffset ()
返回要添加到UTC以在此时区中获得标准时间的时间量(以毫秒为单位)。 由于此值不受夏令时的影响,因此称为原始偏移量 。
如果基础TimeZone
实现子类支持历史GMT偏移更改,则该方法返回当前日期的原始偏移值。 例如,在火奴鲁鲁,1947年,其原始偏移量从GMT-10:30变为GMT-10:00,并且此方法总是返回-36000000毫秒(即-10小时)。
Returns | |
---|---|
int |
the amount of raw offset time in milliseconds to add to UTC. |
也可以看看:
TimeZone getTimeZone (String id)
获取给定ID的 TimeZone
。
Parameters | |
---|---|
id |
String : 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. |
Returns | |
---|---|
TimeZone |
the specified TimeZone , or the GMT zone if the given ID cannot be understood. |
boolean hasSameRules (TimeZone other)
如果此区域与另一个区域具有相同的规则和偏移量,则返回true。 也就是说,如果这个区域仅在ID中有区别,那么完全不同。 如果其他区域为空,则返回false。
Parameters | |
---|---|
other |
TimeZone : the TimeZone object to be compared with |
Returns | |
---|---|
boolean |
true if the other zone is not null and is the same as this one, with the possible exception of the ID |
boolean inDaylightTime (Date date)
查询给定的 date
是否在此时区中的夏令时。
Parameters | |
---|---|
date |
Date : the given Date. |
Returns | |
---|---|
boolean |
true if the given date is in Daylight Saving Time, false , otherwise. |
boolean observesDaylightTime ()
如果此 TimeZone
当前处于夏令时,或者在未来任何时间出现从标准时间到夏令时的转换,则返回 true
。
默认实现返回 true
如果 useDaylightTime()
或者 inDaylightTime(new Date())
回报 true
。
Returns | |
---|---|
boolean |
true if this TimeZone is currently in Daylight Saving Time, or if a transition from Standard Time to Daylight Saving Time occurs at any future time; false otherwise. |
void setDefault (TimeZone timeZone)
设置TimeZone
由返回getDefault
方法。 如果zone
为空,则将默认值重置为最初启动VM时的值。
Parameters | |
---|---|
timeZone |
TimeZone : the new default time zone |
也可以看看:
void setID (String ID)
设置时区ID。 这不会更改时区对象中的任何其他数据。
Parameters | |
---|---|
ID |
String : the new time zone ID. |
void setRawOffset (int offsetMillis)
将基准时区偏移量设置为GMT。 这是添加到UTC以获取本地时间的偏移量。
如果底层 TimeZone
实现子类支持历史GMT偏移更改,则将指定的GMT偏移设置为最新的GMT偏移,并使用与已知最新GMT偏移值的差值来调整所有历史GMT偏移值。
Parameters | |
---|---|
offsetMillis |
int : the given base time zone offset to GMT. |
boolean useDaylightTime ()
查询此 TimeZone
使用夏令时。
如果底层TimeZone
实现子类支持历史和未来的夏令时时间表更改,则此方法引用最后一个已知的夏令时时间规则,该规则可能是未来的预测,可能与当前规则不一致。 如果还应考虑当前规则,请考虑致电observesDaylightTime()
。
Returns | |
---|---|
boolean |
true if this TimeZone uses Daylight Saving Time, false , otherwise. |
也可以看看: