📌  相关文章
📜  Java中的 ZonedDateTime until() 方法及示例(1)

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

Java中的 ZonedDateTime until() 方法及示例

介绍

ZonedDateTime until() 方法是Java 8中的一个DateTime API,它用于计算两个时间之间的时间差。该方法返回一个Duration对象,表示两个时间之间的时间差。

语法
public Duration until​(Temporal endExclusive, TemporalUnit unit)

参数:

  • endExclusive:要计算的结束时间,可以是一个Temporal对象,例如ZonedDateTime、LocalDateTime、OffsetDateTime等。
  • unit:时间单位,例如ChronoUnit.HOURS、ChronoUnit.MINUTES等。

返回值:

方法返回一个Duration对象,表示两个时间之间的时间差。

示例

下面是一个示例,演示了如何使用 ZonedDateTime until() 方法计算两个日期之间的时间差。

import java.time.Duration;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class Main {

    public static void main(String[] args) {
        // 创建两个 ZonedDateTime 对象
        ZonedDateTime time1 = ZonedDateTime.parse("2022-01-01T00:00:00+08:00[Asia/Shanghai]", DateTimeFormatter.ISO_ZONED_DATE_TIME);
        ZonedDateTime time2 = ZonedDateTime.parse("2022-01-02T12:34:56+08:00[Asia/Shanghai]", DateTimeFormatter.ISO_ZONED_DATE_TIME);

        // 计算两个时间之间的时间差
        Duration duration = time1.until(time2);

        // 输出时间差
        System.out.println("时间差:" + duration.toHours() + "小时 " + duration.toMinutes() % 60 + "分钟 " + duration.getSeconds() % 60 + "秒");
    }
}

输出结果:

时间差:36小时 34分钟 56秒

在上面的示例中,我们首先使用ZonedDateTime.parse()方法创建了两个ZonedDateTime对象。然后使用第一个对象的until()方法计算了距离第一个时间48小时和34分钟的时间,返回了一个Duration对象。最后,我们使用Duration对象中的toHours()、toMinutes()和getSeconds()方法获取小时、分钟和秒数。