📅  最后修改于: 2023-12-03 15:01:52.009000             🧑  作者: Mango
在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()
方法以及计算两个时间之间的持续时间的示例。