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

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

Java中的 ChronoZonedDateTime until() 方法和示例

在Java中,ChronoZonedDateTime类提供了一个名为until()的方法,该方法允许我们计算两个时间之间的持续时间。这个方法的语法如下:

public <R extends Temporal> R until(Temporal endExclusive, TemporalUnit unit)

这个方法接受两个参数:

  • endExclusive:计算时间持续时间的结束时间
  • unit:持续时间的时间单位

这个方法返回一个R类型的泛型值,其中R类型必须是Temporal的子类。

下面是一个计算两个时间之间持续时间的示例代码:

import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;

public class ChronoZonedDateTimeUntilExample {
    public static void main(String[] args) {
        LocalDateTime localDateTime = LocalDateTime.of(2021, Month.JULY, 1, 10, 0, 0);
        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("America/New_York"));
        ZonedDateTime endDateTime = zonedDateTime.plusHours(5);

        long hours = zonedDateTime.until(endDateTime, ChronoUnit.HOURS);
        long minutes = zonedDateTime.until(endDateTime, ChronoUnit.MINUTES);

        System.out.println("Hours: " + hours);
        System.out.println("Minutes: " + minutes);
    }
}

在这个示例中,我们创建了一个LocalDateTime对象,表示2021年7月1日上午10点。然后,我们使用该对象创建了一个ZonedDateTime对象,并将其设置为美国纽约的时区。接下来,我们使用plusHours()方法将5小时添加到ZonedDateTime对象中,得到了结束时间。然后,我们使用until()方法计算了两个时间之间的持续时间,并以小时和分钟的形式打印到控制台上。

以上代码运行结果如下:

Hours: 5
Minutes: 300

这正是我们预期的结果:开始时间和结束时间之间的持续时间为5小时,或者说300分钟。

这就是Java中的ChronoZonedDateTime类中的until()方法以及计算两个时间之间的持续时间的示例。