📅  最后修改于: 2023-12-03 15:01:53.766000             🧑  作者: Mango
IsoChronology
类是一个实现 ISO8601 标准的日历系统, 它可以简化日期和时间的处理, 并提供了 zonedDateTime(TemporalAccessor)
方法, 可以将时间对象转换为 ZonedDateTime
类型的实例.
public static ZonedDateTime zonedDateTime(TemporalAccessor temporal)
参数说明:
temporal
- 需要转换为 ZonedDateTime
实例的时间对象,可以是 TemporalAccessor
接口的实现类对象.
返回值:
转换后的 ZonedDateTime
实例.
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.chrono.IsoChronology;
public class Example {
public static void main(String[] args) {
// 1. 将 LocalDate 对象转换为 ZonedDateTime 实例
LocalDate localDate = LocalDate.of(2021, 8, 15);
ZonedDateTime zonedDateTime = IsoChronology.INSTANCE.zonedDateTime(localDate);
System.out.println(zonedDateTime);
// 2. 将 LocalDateTime 对象转换为 ZonedDateTime 实例
LocalDateTime localDateTime = LocalDateTime.of(2021, 8, 15, 8, 30);
zonedDateTime = IsoChronology.INSTANCE.zonedDateTime(localDateTime);
System.out.println(zonedDateTime);
// 3. 将 OffsetDateTime 对象转换为 ZonedDateTime 实例
OffsetDateTime offsetDateTime = OffsetDateTime.of(localDateTime,ZoneId.systemDefault().getRules().getOffset(localDateTime));
zonedDateTime = IsoChronology.INSTANCE.zonedDateTime(offsetDateTime);
System.out.println(zonedDateTime);
}
}
示例中分别展示了将 LocalDate
、LocalDateTime
和 OffsetDateTime
对象转换为 ZonedDateTime
实例的方法,并使用标准输出打印了转换后的结果.
运行结果如下:
2021-08-15T00:00Z[UTC]
2021-08-15T08:30Z[UTC]
2021-08-15T08:30+08:00[Asia/Shanghai]