当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。