W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
java.lang.Object
|---java.util.TimeZone
public abstract class TimeZone
extends Object
implements Serializable, Cloneable
TimeZone 表示時區(qū)偏移量,也計(jì)算夏令時。
通常,您使用 getDefault 獲得一個 TimeZone,它根據(jù)程序運(yùn)行的時區(qū)創(chuàng)建一個 TimeZone。 例如,對于在日本運(yùn)行的程序,getDefault 根據(jù)日本標(biāo)準(zhǔn)時間創(chuàng)建一個 TimeZone 對象。
您還可以使用 getTimeZone 和時區(qū) ID 獲取 TimeZone。 例如,美國太平洋時區(qū)的時區(qū) ID 是“America/Los_Angeles”。 因此,您可以通過以下方式獲取美國太平洋時間 TimeZone 對象:
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
您可以使用 getAvailableIDs 方法遍歷所有受支持的時區(qū) ID。 然后,您可以選擇支持的 ID 來獲取 TimeZone。 如果您想要的時區(qū)不是由受支持的 ID 之一表示,則可以指定自定義時區(qū) ID 以生成 TimeZone。 自定義時區(qū) ID 的語法是:
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
小時必須介于 0 到 23 之間,分鐘必須介于 00 到 59 之間。例如,“GMT+10”和“GMT+0010”分別表示比 GMT 提前十小時和十分鐘。
格式與區(qū)域無關(guān),數(shù)字必須取自 Unicode 標(biāo)準(zhǔn)的基本拉丁語塊。 不能使用自定義時區(qū) ID 指定夏令時轉(zhuǎn)換計(jì)劃。 如果指定的字符串與語法不匹配,則使用“GMT”。
創(chuàng)建 TimeZone 時,指定的自定義時區(qū) ID 以以下語法規(guī)范化:
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
例如,TimeZone.getTimeZone("GMT-8").getID() 返回“GMT-08:00”。 三字母時區(qū) ID 為了與 JDK 1.1.x 兼容,還支持其他一些三字母時區(qū) ID(例如“PST”、“CTT”、“AST”)。 但是,不推薦使用它們,因?yàn)橄嗤目s寫通常用于多個時區(qū)(例如,“CST”可能是美國“中部標(biāo)準(zhǔn)時間”和“中國標(biāo)準(zhǔn)時間”),Java 平臺只能識別其中之一 他們。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static int | LONG | getDisplayName() 的樣式說明符,指示長名稱,例如“太平洋標(biāo)準(zhǔn)時間”。 |
static int | SHORT | getDisplayName() 的樣式說明符,指示短名稱,例如“PST”。 |
構(gòu)造函數(shù) | 描述 |
---|---|
TimeZone() | 唯一的構(gòu)造函數(shù) |
修飾符和類型 | 方法 | 描述 |
---|---|---|
Object | clone() | 創(chuàng)建此 TimeZone 的副本。 |
static String[] | getAvailableIDs() | 獲取支持的所有可用 ID。 |
static String[] | getAvailableIDs(int rawOffset) | 根據(jù)給定的時區(qū)偏移量獲取可用的 ID,以毫秒為單位。 |
static TimeZone | getDefault() | 獲取 Java 虛擬機(jī)的默認(rèn)時區(qū)。 |
String | getDisplayName() | 返回此 TimeZone 的長標(biāo)準(zhǔn)時間名稱,適合在默認(rèn)語言環(huán)境中呈現(xiàn)給用戶。 |
String | getDisplayName(boolean daylight, int style) | 返回此 TimeZone 的指定樣式的名稱,該名稱適合在默認(rèn)語言環(huán)境中呈現(xiàn)給用戶。 |
String | getDisplayName(boolean daylight, int style, Locale locale) | 返回此 TimeZone 的指定樣式的名稱,該名稱適合在指定區(qū)域設(shè)置中呈現(xiàn)給用戶。 |
String | getDisplayName(Locale locale) | 返回此 TimeZone 的長標(biāo)準(zhǔn)時間名稱,適合在指定區(qū)域設(shè)置中呈現(xiàn)給用戶。 |
int | getDSTSavings() | 返回要添加到本地標(biāo)準(zhǔn)時間以獲取本地掛鐘時間的時間量。 |
String | getID() | 獲取該時區(qū)的 ID。 |
abstract int | getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds) | 獲取當(dāng)前日期的時區(qū)偏移量,在夏令時的情況下進(jìn)行修改。 |
int | getOffset(long date) | 返回此時區(qū)在指定日期與 UTC 的偏移量。 |
abstract int | getRawOffset() | 返回添加到 UTC 以獲取此時區(qū)的標(biāo)準(zhǔn)時間的時間量(以毫秒為單位)。 |
static TimeZone | getTimeZone(String ID) | 獲取給定 ID 的時區(qū)。 |
static TimeZone | getTimeZone(ZoneId zoneId) | 獲取給定 zoneId 的 TimeZone。 |
boolean | hasSameRules(TimeZone other) | 如果此區(qū)域與另一個區(qū)域具有相同的規(guī)則和偏移量,則返回 true。 |
abstract boolean | inDaylightTime(Date date) | 查詢給定日期是否在該時區(qū)的夏令時。 |
boolean | observesDaylightTime() | 如果此 TimeZone 當(dāng)前處于夏令時,或者如果在將來的任何時間發(fā)生從標(biāo)準(zhǔn)時間到夏令時的轉(zhuǎn)換,則返回 true。 |
static void | setDefault(TimeZone zone) | 設(shè)置由 getDefault 方法返回的 TimeZone。 |
void | setID(String ID) | 設(shè)置時區(qū) ID。 |
abstract void | setRawOffset(int offsetMillis) | 將基準(zhǔn)時區(qū)偏移設(shè)置為 GMT。 |
ZoneId | toZoneId() | 將此 TimeZone 對象轉(zhuǎn)換為 ZoneId。 |
abstract boolean | useDaylightTime() | 查詢此 TimeZone 是否使用夏令時。 |
從類 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final int LONG
getDisplayName() 的樣式說明符,指示長名稱,例如“太平洋標(biāo)準(zhǔn)時間”。
public static final int SHORT
getDisplayName() 的樣式說明符,指示短名稱,例如“PST”。
public TimeZone()
唯一的構(gòu)造函數(shù)。 (用于子類構(gòu)造函數(shù)的調(diào)用,通常是隱式的。)
public abstract int getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds)
獲取當(dāng)前日期的時區(qū)偏移量,在夏令時的情況下進(jìn)行修改。 這是添加到 UTC 以獲取本地時間的偏移量。
如果基礎(chǔ) TimeZone 實(shí)現(xiàn)子類支持歷史夏令時時間表和 GMT 偏移更改,則此方法返回歷史正確偏移。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
era | 給定日期的時代。 |
year | 給定日期的年份。 |
month | 給定日期的月份。 月份是從 0 開始的。 例如,0 表示一月。 |
day | 給定日期的月份中的某一天。 |
dayOfWeek | 給定日期的星期幾。 |
milliseconds | 標(biāo)準(zhǔn)本地時間的毫秒數(shù)。 |
返回:
添加到 GMT 以獲取本地時間的偏移量(以毫秒為單位)。
public int getOffset(long date)
返回此時區(qū)在指定日期與 UTC 的偏移量。 如果夏令時在指定日期生效,則偏移值會根據(jù)夏令時進(jìn)行調(diào)整。
如果基礎(chǔ) TimeZone 實(shí)現(xiàn)子類支持歷史夏令時時間表和 GMT 偏移更改,則此方法返回歷史正確偏移值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
date | 自 1970 年 1 月 1 日 00:00:00 GMT 以來以毫秒為單位的日期 |
返回:
添加到 UTC 以獲取本地時間的時間量(以毫秒為單位)。
public abstract void setRawOffset(int offsetMillis)
將基準(zhǔn)時區(qū)偏移設(shè)置為 GMT。 這是添加到 UTC 以獲取本地時間的偏移量。
如果底層 TimeZone 實(shí)現(xiàn)子類支持歷史 GMT 偏移量更改,則將指定的 GMT 偏移量設(shè)置為最新的 GMT 偏移量,并使用與已知的最新 GMT 偏移量值的差值來調(diào)整所有歷史 GMT 偏移量值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
offsetMillis | 給定的基準(zhǔn)時區(qū)偏移到 GMT。 |
public abstract int getRawOffset()
返回添加到 UTC 以獲取此時區(qū)的標(biāo)準(zhǔn)時間的時間量(以毫秒為單位)。 因?yàn)檫@個值不受夏令時影響,所以稱為原始偏移量。
如果底層 TimeZone 實(shí)現(xiàn)子類支持歷史 GMT 偏移更改,則該方法返回當(dāng)前日期的原始偏移值。 例如,在檀香山,其原始偏移量在 1947 年從 GMT-10:30 更改為 GMT-10:00,并且此方法始終返回 -36000000 毫秒(即 -10 小時)。
返回:
添加到 UTC 的原始偏移時間量(以毫秒為單位)。
public String getID()
獲取該時區(qū)的 ID。
返回:
這個時區(qū)的ID。
public void setID(String ID)
設(shè)置時區(qū) ID。 這不會更改時區(qū)對象中的任何其他數(shù)據(jù)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ID | 新時區(qū) ID。 |
public final String getDisplayName()
返回此 TimeZone 的長標(biāo)準(zhǔn)時間名稱,適合在默認(rèn)語言環(huán)境中呈現(xiàn)給用戶。
該方法等價于:
getDisplayName(false, LONG,
Locale.getDefault(Locale.Category#DISPLAY))
返回:
此時區(qū)在默認(rèn)語言環(huán)境中的可讀名稱。
public final String getDisplayName(Locale locale)
返回此 TimeZone 的長標(biāo)準(zhǔn)時間名稱,適合在指定區(qū)域設(shè)置中呈現(xiàn)給用戶。
該方法等價于:
getDisplayName(false, LONG, locale)
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
locale | 提供顯示名稱的語言環(huán)境。 |
返回:
此時區(qū)在給定語言環(huán)境中的可讀名稱。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 locale 為空 |
public final String getDisplayName(boolean daylight, int style)
返回此 TimeZone 的指定樣式的名稱,該名稱適合在默認(rèn)語言環(huán)境中呈現(xiàn)給用戶。 如果指定的日光為真,則返回夏令時名稱(即使此 TimeZone 不遵守夏令時)。 否則,返回標(biāo)準(zhǔn)時間名稱。
該方法等價于:
getDisplayName(daylight, style,
Locale.getDefault(Locale.Category#DISPLAY))
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
daylight | true 指定夏令時名稱,或 false 指定標(biāo)準(zhǔn)時間名稱 |
style | 長或短 |
返回:
此時區(qū)在默認(rèn)語言環(huán)境中的可讀名稱。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 style 無效 |
public String getDisplayName(boolean daylight, int style, Locale locale)
返回此 TimeZone 的指定樣式的名稱,該名稱適合在指定區(qū)域設(shè)置中呈現(xiàn)給用戶。 如果指定的日光為真,則返回夏令時名稱(即使此 TimeZone 不遵守夏令時)。 否則,返回標(biāo)準(zhǔn)時間名稱。
查找時區(qū)名稱時,使用從指定語言環(huán)境派生的 ResourceBundle.Control#getCandidateLocales(String,Locale)。 (不執(zhí)行 ResourceBundle.Control#getFallbackLocale(String,Locale) 搜索。)如果在搜索路徑的任何 Locale 中找到時區(qū)名稱,包括 Locale#ROOT,則返回該名稱。 否則,返回標(biāo)準(zhǔn)化自定義 ID 格式的字符串。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
daylight | true 指定夏令時名稱,或 false 指定標(biāo)準(zhǔn)時間名稱 |
style | 長或短 |
locale | 提供顯示名稱的語言環(huán)境。 |
返回:
此時區(qū)在給定語言環(huán)境中的可讀名稱。
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果 style 無效 |
NullPointerException | 如果 locale 為空 |
public int getDSTSavings()
返回要添加到本地標(biāo)準(zhǔn)時間以獲取本地掛鐘時間的時間量。
如果對 useDaylightTime() 的調(diào)用返回 true,則默認(rèn)實(shí)現(xiàn)返回 3600000 毫秒(即一小時)。 否則,返回 0(零)。
如果底層 TimeZone 實(shí)現(xiàn)子類支持歷史和未來夏令時計(jì)劃更改,則此方法返回可以作為未來預(yù)測的最后一個已知夏令時規(guī)則的節(jié)省時間量。
如果需要任何給定時間戳的節(jié)省時間量,請使用此 TimeZone 和時間戳構(gòu)造一個日歷,并調(diào)用 Calendar#get(int)(Calendar#DST_OFFSET)。
返回:
以毫秒為單位的節(jié)省時間
public abstract boolean useDaylightTime()
查詢此 TimeZone 是否使用夏令時。
如果底層 TimeZone 實(shí)現(xiàn)子類支持歷史和未來的夏令時時間表更改,則此方法引用最后一個已知的夏令時規(guī)則,該規(guī)則可以是未來的預(yù)測,并且可能與當(dāng)前規(guī)則不同。 如果還應(yīng)考慮當(dāng)前規(guī)則,請考慮調(diào)用observesDaylightTime()。
返回:
如果此 TimeZone 使用夏令時,則為 true,否則為 false。
public boolean observesDaylightTime()
如果此 TimeZone 當(dāng)前處于夏令時,或者如果在將來的任何時間發(fā)生從標(biāo)準(zhǔn)時間到夏令時的轉(zhuǎn)換,則返回 true。
如果 useDaylightTime() 或 inDaylightTime(new Date()) 返回 true,則默認(rèn)實(shí)現(xiàn)返回 true。
返回:
如果此 TimeZone 當(dāng)前處于夏令時,或者如果在未來任何時間發(fā)生從標(biāo)準(zhǔn)時間到夏令時的轉(zhuǎn)換,則為 true; 否則為 false。
public abstract boolean inDaylightTime(Date date)
查詢給定日期是否在該時區(qū)的夏令時。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
date | 給定的日期。 |
返回:
如果給定日期在夏令時,則為 true,否則為 false。
public static TimeZone getTimeZone(String ID)
獲取給定 ID 的時區(qū)。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ID | TimeZone 的 ID,可以是“PST”等縮寫、“America/Los_Angeles”等全名或“GMT-8:00”等自定義 ID。 請注意,支持縮寫僅是為了兼容 JDK 1.1.x,應(yīng)使用全名。 |
返回:
指定的時區(qū),如果無法理解給定的 ID,則為 GMT 時區(qū)。
public static TimeZone getTimeZone(ZoneId zoneId)
獲取給定 zoneId 的 TimeZone。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
zoneId | 從中獲取時區(qū) ID 的 ZoneId |
返回:
指定的時區(qū),如果無法理解給定的 ID,則為 GMT 時區(qū)。
Throws:
Throw名稱 | Throw描述 |
---|---|
NullPointerException | 如果 zoneId 為空 |
public ZoneId toZoneId()
將此 TimeZone 對象轉(zhuǎn)換為 ZoneId。
返回:
表示與此 TimeZone 相同時區(qū)的 ZoneId
public static String[] getAvailableIDs(int rawOffset)
根據(jù)給定的時區(qū)偏移量獲取可用的 ID,以毫秒為單位。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
rawOffset | 給定的時區(qū) GMT 偏移量(以毫秒為單位)。 |
返回:
一個 ID 數(shù)組,其中該 ID 的時區(qū)具有指定的 GMT 偏移量。 例如,“America/Phoenix”和“America/Denver”都有 GMT-07:00,但夏令時行為不同。
public static String[] getAvailableIDs()
獲取支持的所有可用 ID。
返回:
一個 ID 數(shù)組。
public static TimeZone getDefault()
獲取 Java 虛擬機(jī)的默認(rèn)時區(qū)。 如果緩存的默認(rèn) TimeZone 可用,則返回其克隆。 否則,該方法采取以下步驟來確定默認(rèn)時區(qū)。
從 ID 創(chuàng)建的默認(rèn) TimeZone 被緩存,并返回其克隆。 user.timezone 屬性值在返回時設(shè)置為 ID。
返回:
默認(rèn)時區(qū)
public static void setDefault(TimeZone zone)
設(shè)置由 getDefault 方法返回的 TimeZone。 區(qū)域被緩存。 如果 zone 為 null,則清除緩存的默認(rèn) TimeZone。 此方法不會更改 user.timezone 屬性的值。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
zone | 新的默認(rèn)時區(qū),或 null |
Throws:
Throw名稱 | Throw描述 |
---|---|
SecurityException | 如果安全管理器的 checkPermission 拒絕 PropertyPermission("user.timezone", "write") |
public boolean hasSameRules(TimeZone other)
如果此區(qū)域與另一個區(qū)域具有相同的規(guī)則和偏移量,則返回 true。 也就是說,如果該區(qū)域僅在 ID 上有所不同,如果有的話。 如果其他區(qū)域?yàn)榭眨瑒t返回 false。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
other | 要與之比較的 TimeZone 對象 |
返回:
如果另一個區(qū)域不為空且與此區(qū)域相同,則為 true,ID 可能除外
public Object clone()
創(chuàng)建此 TimeZone 的副本。
覆蓋:
在類 Object 中克隆
返回:
此 TimeZone 的克隆
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: