Most visited

Recently visited

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代表时区偏移量,并计算出夏令时。

通常情况下,你会得到一个TimeZone使用getDefault它创建了一个TimeZone基于在程序运行的时区。 例如,对于在日本运行的程序, getDefault会根据日语标准时间创建一个TimeZone对象。

您还可以使用getTimeZone以及时区ID获取TimeZone 例如,美国太平洋时区的时区ID是“America / Los_Angeles”。 因此,您可以通过以下方式获得美国太平洋时间TimeZone对象:

 TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
 
You can use the 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:
 CustomID:
         GMT Sign Hours : Minutes
         GMT Sign Hours Minutes
         GMT Sign Hours
 Sign: one of
         + -
 Hours:
         Digit
         Digit Digit
 Minutes:
         Digit Digit
 Digit: one of
         0 1 2 3 4 5 6 7 8 9
 
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.

格式是区域独立的,数字必须来自Unicode标准的基本拉丁块。 可以使用自定义时区ID指定夏令时转换时间表。 如果指定的字符串与语法不匹配,则使用"GMT"

创建 TimeZone ,指定的自定义时区标识按照以下语法进行标准化:

 NormalizedCustomID:
         GMT Sign TwoDigitHours : Minutes
 Sign: one of
         + -
 TwoDigitHours:
         Digit Digit
 Minutes:
         Digit Digit
 Digit: one of
         0 1 2 3 4 5 6 7 8 9
 
For example, TimeZone.getTimeZone("GMT-8").getID() returns "GMT-08:00".

Three-letter time zone IDs

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.

也可以看看:

Summary

Constants

int LONG

getDisplayName()的样式说明符,表示一个长名称,如“太平洋标准时间”。

int SHORT

指定短名称(例如“PST”)的 getDisplayName()样式说明符。

Public constructors

TimeZone()

唯一的构造函数。

Public methods

Object clone()

创建此 TimeZone的副本。

static String[] getAvailableIDs()

获取支持的所有可用ID。

static String[] getAvailableIDs(int rawOffset)

根据给定的时区偏移量以毫秒为单位获取可用ID。

int getDSTSavings()

返回要添加到本地标准时间以获取本地挂钟时间的时间量。

static TimeZone getDefault()

获取此主机的默认 TimeZone

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

返回 short或者 long与标准或夏令时的时区的名字,写在 locale

final String getDisplayName(Locale locale)

返回适合在指定的 locale呈现给用户的此 TimeZone的长标准时间名称。

final String getDisplayName(boolean daylight, int style)

返回此 TimeZone的指定 style中的名称,该名称适合以默认语言环境呈现给用户。

final String getDisplayName()

返回适合以默认语言环境呈现给用户的 TimeZone这个长标准时间名称。

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的 TimeZone

boolean hasSameRules(TimeZone other)

如果此区域与另一个区域具有相同的规则和偏移量,则返回true。

abstract boolean inDaylightTime(Date date)

查询给定的 date是否在此时区中的夏令时。

boolean observesDaylightTime()

如果此 TimeZone当前处于夏令时,或者在未来任何时间出现从标准时间到夏令时的转换,则返回 true

static void setDefault(TimeZone timeZone)

设置 TimeZone由返回 getDefault方法。

void setID(String ID)

设置时区ID。

abstract void setRawOffset(int offsetMillis)

将基准时区偏移量设置为GMT。

abstract boolean useDaylightTime()

查询此 TimeZone使用夏令时。

Inherited methods

From class java.lang.Object

Constants

LONG

Added in API level 1
int LONG

getDisplayName()的样式说明符,表示长名称,例如“太平洋标准时间”。

也可以看看:

常数值:1(0x00000001)

SHORT

Added in API level 1
int SHORT

getDisplayName()的样式说明符,表示简短名称,如“PST”。

也可以看看:

常量值:0(0x00000000)

Public constructors

TimeZone

Added in API level 1
TimeZone ()

唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)

Public methods

clone

Added in API level 1
Object clone ()

创建此 TimeZone的副本。

Returns
Object a clone of this TimeZone

getAvailableIDs

Added in API level 1
String[] getAvailableIDs ()

获取支持的所有可用ID。

Returns
String[] an array of IDs.

getAvailableIDs

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

也可以看看:

getDSTSavings

Added in API level 1
int getDSTSavings ()

返回要添加到本地标准时间以获取本地挂钟时间的时间量。

如果对useDaylightTime()的调用返回true ,则默认实现将返回3600000毫秒(即一小时)。 否则,返回0(零)。

如果底层 TimeZone实现子类支持历史和将来的夏令时时间表更改,则此方法返回可能是未来预测的最后一个已知夏令时规则的保存时间量。

如果需要任何给定时间戳的保存时间量, Calendar使用此 TimeZone和时间戳记构造一个 Calendar ,并调用 Calendar.get ( DST_OFFSET )

Returns
int the amount of saving time in milliseconds

也可以看看:

getDefault

Added in API level 1
TimeZone getDefault ()

获取此主机的默认TimeZone 默认TimeZone的来源可能因实现而异。

Returns
TimeZone a default TimeZone.

也可以看看:

getDisplayName

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

getDisplayName

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

也可以看看:

getDisplayName

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

返回此TimeZone指定的style中的名称,该名称适合以默认语言环境呈现给用户。 如果指定的daylighttrue ,则返回夏令时名称(即使此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.

也可以看看:

getDisplayName

Added in API level 1
String getDisplayName ()

返回适合以默认语言环境呈现给用户的 TimeZone的长标准时间名称。

这种方法相当于:

      
      
      
getDisplayName(false, LONG, Locale.getDefault( DISPLAY))

Returns
String the human-readable name of this time zone in the default locale.

也可以看看:

getID

Added in API level 1
String getID ()

获取此时区的ID。

Returns
String the ID of this time zone.

getOffset

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

也可以看看:

getOffset

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

也可以看看:

getRawOffset

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

也可以看看:

getTimeZone

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

hasSameRules

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

inDaylightTime

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

observesDaylightTime

Added in API level 24
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.

也可以看看:

setDefault

Added in API level 1
void setDefault (TimeZone timeZone)

设置TimeZone由返回getDefault方法。 如果zone为空,则将默认值重置为最初启动VM时的值。

Parameters
timeZone TimeZone: the new default time zone

也可以看看:

setID

Added in API level 1
void setID (String ID)

设置时区ID。 这不会更改时区对象中的任何其他数据。

Parameters
ID String: the new time zone ID.

setRawOffset

Added in API level 1
void setRawOffset (int offsetMillis)

将基准时区偏移量设置为GMT。 这是添加到UTC以获取本地时间的偏移量。

如果底层 TimeZone实现子类支持历史GMT偏移更改,则将指定的GMT偏移设置为最新的GMT偏移,并使用与已知最新GMT偏移值的差值来调整所有历史GMT偏移值。

Parameters
offsetMillis int: the given base time zone offset to GMT.

useDaylightTime

Added in API level 1
boolean useDaylightTime ()

查询此 TimeZone使用夏令时。

如果底层TimeZone实现子类支持历史和未来的夏令时时间表更改,则此方法引用最后一个已知的夏令时时间规则,该规则可能是未来的预测,可能与当前规则不一致。 如果还应考虑当前规则,请考虑致电observesDaylightTime()

Returns
boolean true if this TimeZone uses Daylight Saving Time, false, otherwise.

也可以看看:

Hooray!