ZoneId 用於標識用於在 LocalDateTime 和時間瞬間之間進行轉換的規則。說明偏移量變化的時間和方式的實際規則由 ZoneRules 定義。這個類隻是一個用來獲取底層規則的ID。選擇給定的方法是因為政府定義規則並經常更改,而 ID 是穩定的。
ID 有兩種不同類型:
- 固定偏移量是相對於 UTC/格林威治的完全解析偏移量,它對所有本地日期時間使用相同的偏移量
- 地理區域是一個鄰域,其中應用一組選定的規則來定位與 UTC/格林威治的偏移量
Declaration of java.time.ZoneId class
public abstract class ZoneId extends Object implements Serializable
區域Map覆蓋以啟用短時區名稱。 java.util.TimeZone 中已棄用短區域 ID 的使用。該映射允許仍然通過 of(String, Map) 工廠方法使用 ID。此映射包含符合 TZDB 2005r 及更高版本的 ID 映射,其中“EST”、“MST”和“HST”映射到不包括夏令時的 ID。
該映射如下:
EST |
05:00 |
高溫試驗 |
10:00 |
MST |
07:00 |
行為 |
澳大利亞/達爾文 |
乙醚 |
澳大利亞/悉尼 |
AGT |
美國/阿根廷/Buenos_Aires |
ART |
非洲/開羅 |
穀草轉氨酶 |
美洲/安克雷奇 |
賭注 |
美國/Sao_Paulo |
空白時間 |
亞洲/達卡 |
cat |
非洲/哈拉雷 |
碳納米管 |
美國/St_Johns |
科學技術委員會 |
美洲/芝加哥 |
CTT |
亞洲/上海 |
吃 |
非洲/Addis_Ababa |
ECT |
歐洲/巴黎 |
IET |
美洲/印第安納州/印第安納波利斯 |
IST |
亞洲/加爾各答 |
日本科學技術協會 |
亞洲/東京 |
麻省理工學院 |
太平洋/阿皮亞 |
網 |
亞洲/埃裏溫 |
新標準 |
太平洋/奧克蘭 |
PLT |
亞洲/卡拉奇 |
PNT |
美洲/菲尼克斯 |
選擇性RT |
美國/Puerto_Rico |
太平洋標準時間 |
美國/Los_Angeles |
海溫 |
太平洋/瓜達爾卡納爾島 |
視覺時效 | 亞洲/Ho_Chi_Minh |
注意:Map不可修改。
ZoneId類的方法:
方法 | 說明 |
---|---|
equals(Object obj) | 此方法檢查此時區 ID 是否等於另一個時區 ID。 |
from(TemporalAccessor temporal) | 此方法從時間對象獲取 ZoneId 的實例。 |
getAvailableZoneIds() | 此方法獲取可用區域 ID 的集合。 |
getDisplayName(TextStyle style, Locale locale) | 此方法獲取該區域的文本表示形式,例如“英國時間”或“+02:00”。 |
getId() | 此方法獲取唯一的時區 ID。 |
getRules() | 此方法獲取此 ID 的時區規則,以便執行計算。 |
hashCode() | 該時區 ID 的哈希碼。 |
normalized() | 此方法標準化時區 ID,在可能的情況下返回 ZoneOffset。 |
of(String zoneId) | 此方法從 ID 獲取 ZoneId 的實例,確保該 ID 有效且可供使用。 |
of(String zoneId, Map<String,String> aliasMap) | 此方法使用 ZoneId 的 ID 獲取 ZoneId 的實例,並使用別名映射來補充標準區域 ID。 |
ofOffset(String prefix, ZoneOffset offset) | 此方法獲取包裝偏移量的 ZoneId 實例。 |
systemDefault() | 該方法獲取係統默認時區。 |
toString() | 此方法使用 ID 將該區域輸出為字符串。 |
下麵是一些方法的實現示例:
Java
// java.time.ZoneId Class in Java with example
import java.time.*;
public class GFG {
public static void main(String[] args)
{
// Setting Zone1
ZoneId zoneid1 = ZoneId.of("Asia/Kolkata");
// Setting Zone2
ZoneId zoneid2 = ZoneId.of("Europe/London");
LocalTime time1 = LocalTime.now(zoneid1);
LocalTime time2 = LocalTime.now(zoneid2);
System.out.println(time1);
System.out.println(time2);
// Checking if the time of zone1
// comes before time of second zone
System.out.println(time1.isBefore(time2));
}
}
輸出
22:34:11.044312 17:04:11.044385 false
相關用法
- Java java.time.ZoneId.equals()用法及代碼示例
- Java java.time.ZoneId.from()用法及代碼示例
- Java java.time.ZoneId.getAvailableZoneIds()用法及代碼示例
- Java java.time.ZoneId.getDisplayName()用法及代碼示例
- Java java.time.ZoneId.getId()用法及代碼示例
- Java java.time.ZoneId.getRules()用法及代碼示例
- Java java.time.ZoneId.hashCode()用法及代碼示例
- Java java.time.ZoneId.normalized()用法及代碼示例
- Java java.time.ZoneId.of()用法及代碼示例
- Java java.time.ZoneId.ofOffset()用法及代碼示例
- Java java.time.ZoneId.systemDefault()用法及代碼示例
- Java java.time.ZoneId.toString()用法及代碼示例
- Java java.time.ZonedDateTime.equals()用法及代碼示例
- Java java.time.ZonedDateTime.format()用法及代碼示例
- Java java.time.ZonedDateTime.from()用法及代碼示例
- Java java.time.ZonedDateTime.get()用法及代碼示例
- Java java.time.ZonedDateTime.getDayOfMonth()用法及代碼示例
- Java java.time.ZonedDateTime.getDayOfWeek()用法及代碼示例
- Java java.time.ZonedDateTime.getDayOfYear()用法及代碼示例
- Java java.time.ZonedDateTime.getHour()用法及代碼示例
- Java java.time.ZonedDateTime.getLong()用法及代碼示例
- Java java.time.ZonedDateTime.getMinute()用法及代碼示例
- Java java.time.ZonedDateTime.getMonth()用法及代碼示例
- Java java.time.ZonedDateTime.getMonthValue()用法及代碼示例
- Java java.time.ZonedDateTime.getNano()用法及代碼示例
注:本文由純淨天空篩選整理自mayanktyagi1709大神的英文原創作品 java.time.ZoneId Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。