java.time.ZoneId

1 java.time.ZoneId介绍

Java ZoneId类指定时区标识符,并提供在Instant和LocalDateTime之间进行转换的规则。它继承了Object类并实现了Serializable接口。

2 java.time.ZoneId声明

我们来看一下java.time.ZoneId类的声明。

public abstract class ZoneId extends Object implements Serializable  

3 java.time.ZoneId方法

方法 描述
boolean equals(Object obj) 检查此时区ID是否等于另一个时区ID。
static ZoneId from(TemporalAccessor temporal) 从时态对象获取ZoneId的实例。
static Set<String> getAvailableZoneIds() 获取可用区域ID的集合。
String getDisplayName(TextStyle style, Locale locale) 获取区域的文本表示,例如:British Time或+02:00。
abstract String getId() 获取唯一的时区ID。
abstract ZoneRules getRules() 获取此ID的时区规则,允许执行计算。
int hashCode() 此时区ID的哈希码。
ZoneId normalized() 规范化时区ID,尽可能返回ZoneOffset。
static ZoneId of(String zoneId) 从ID获取ZoneId的实例,确保该ID有效且可供使用。
static ZoneId of(String zoneId, Map<String,String> aliasMap) 使用别名映射使用其ID获取ZoneId的实例以补充标准区域ID。
static ZoneId ofOffset(String prefix, ZoneOffset offset) 获得包装偏移量的ZoneId实例。
static ZoneId systemDefault() 获取系统默认时区。
String toString() 使用ID将此区域输出为String。

4 java.time.ZoneId案例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
import java.time.*;  
public class ZoneIdExample1 {  
  public static void main(String... args) {  
    ZoneId zoneid1 = ZoneId.of("Asia/Kolkata");  
    ZoneId zoneid2 = ZoneId.of("Asia/Tokyo");  
    LocalTime id1 = LocalTime.now(zoneid1);  
    LocalTime id2 = LocalTime.now(zoneid2);  
    System.out.println(id1);  
    System.out.println(id2);  
    System.out.println(id1.isBefore(id2));    
  }  
} 

输出结果为:

14:28:58.230
17:58:58.230
true

5 java.time.ZoneId案例2

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
import java.time.ZoneId;  
public class ZoneIdExample2 {  
  public static void main(String[] args) {  
    ZoneId zone = ZoneId.systemDefault();     
    System.out.println(zone);  
  }       
}  

输出结果为:

Asia/Kolkata

 

热门文章

优秀文章