當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java java.time.ZoneId用法及代碼示例


ZoneId 用於標識用於在 LocalDateTime 和時間瞬間之間進行轉換的規則。說明偏移量變化的時間和方式的實際規則由 ZoneRules 定義。這個類隻是一個用來獲取底層規則的ID。選擇給定的方法是因為政府定義規則並經常更改,而 ID 是穩定的。

ID 有兩種不同類型:

  1. 固定偏移量是相對於 UTC/格林威治的完全解析偏移量,它對所有本地日期時間使用相同的偏移量
  2. 地理區域是一個鄰域,其中應用一組選定的規則來定位與 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


相關用法


注:本文由純淨天空篩選整理自mayanktyagi1709大神的英文原創作品 java.time.ZoneId Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。