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