📌  相关文章
📜  Java中的 IsoChronology zonedDateTime(TemporalAccessor) 方法与示例(1)

📅  最后修改于: 2023-12-03 15:01:53.766000             🧑  作者: Mango

Java中的 IsoChronology zonedDateTime(TemporalAccessor) 方法

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);
    }
}
  • 示例中分别展示了将 LocalDateLocalDateTimeOffsetDateTime 对象转换为 ZonedDateTime 实例的方法,并使用标准输出打印了转换后的结果.

  • 运行结果如下:

2021-08-15T00:00Z[UTC]
2021-08-15T08:30Z[UTC]
2021-08-15T08:30+08:00[Asia/Shanghai]