📅  最后修改于: 2023-12-03 15:31:56.492000             🧑  作者: Mango
ZonedDateTime until() 方法是Java 8中的一个DateTime API,它用于计算两个时间之间的时间差。该方法返回一个Duration对象,表示两个时间之间的时间差。
public Duration until(Temporal endExclusive, TemporalUnit unit)
参数:
返回值:
方法返回一个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()方法获取小时、分钟和秒数。