📅  最后修改于: 2023-12-03 14:42:48.147000             🧑  作者: Mango
在Java中,IsoChronology
类表示ISO日历系统。ZonedDateTime
类则表示带有时区信息的日期和时间。这两个类都是线程安全的,可以在多线程环境下使用。本文将介绍如何使用IsoChronology
类的zonedDateTime(Instant, ZoneId)
方法创建ZonedDateTime
实例,并提供一个示例。
zonedDateTime(Instant, ZoneId)
方法zonedDateTime(Instant, ZoneId)
方法是IsoChronology
类中的一个静态方法,用于根据给定的时间戳和时区创建一个ZonedDateTime
实例。具体来说,这个方法接受两个参数:
instant
:一个Instant
对象,表示一个时间戳。zone
:一个ZoneId
对象,表示一个时区。这个方法的返回值是一个ZonedDateTime
对象,表示指定时区下的时间。
以下是方法的声明:
public static ZonedDateTime zonedDateTime(Instant instant, ZoneId zone)
以下示例演示如何使用zonedDateTime(Instant, ZoneId)
方法创建一个ZonedDateTime
实例:
import java.time.*;
import java.time.chrono.IsoChronology;
public class Example {
public static void main(String[] args) {
// 创建一个Instant对象,表示时间戳为2022-01-01T00:00:00Z
Instant instant = Instant.parse("2022-01-01T00:00:00Z");
// 创建一个ZoneId对象,表示时区为东8区
ZoneId zone = ZoneId.of("Asia/Shanghai");
// 使用zonedDateTime方法创建一个ZonedDateTime对象
ZonedDateTime zdt = IsoChronology.INSTANCE.zonedDateTime(instant, zone);
// 输出ZonedDateTime对象
System.out.println(zdt);
}
}
输出:
2022-01-01T08:00+08:00[Asia/Shanghai]
在上面的示例中,我们先创建一个Instant
对象,表示时间戳为2022年1月1日的0点0分0秒UTC。然后,我们创建一个ZoneId
对象,表示中国时区(东8区)。最后,我们使用zonedDateTime(Instant, ZoneId)
方法创建一个ZonedDateTime
对象,并将其输出到控制台上。
需要注意的是,输出的时间是根据本地时区格式化的时间,获得的时间跟本地时区相关,可能会与示例输出不同。