1、Period 类
在 Java 中,Period 类和 Duration 类都是用于表示时间间隔的类,但它们有不同的使用场景和特性。Period 类位于 java.time 包中,主要用于表示基于日期的时间间隔,即年、月、日的差异。它常用于处理日期之间的计算,例如计算两个日期之间的年数、月数和天数。
Period 类的常用方法:
方法 | 说明 |
---|---|
public static Period between(LocalDate startDate, LocalDate endDate) | 通过两个日期对象,创建 Period 实例。 |
public int getYears() | 返回间隔多少年。 |
public int getMonths() | 返回间隔多少月。 |
public int getDays() | 返回间隔多少天。 |
【示例】使用 Period 日期间隔对象。
/*** 使用 Period 日期间隔对象* @author pan_junbiao*/
@Test
public void testPeriod()
{// 创建两个日期对象LocalDate startDate = LocalDate.of(2024, 11, 5);LocalDate endtDate = LocalDate.of(2028, 12, 18);System.out.println("开始日期:" + startDate);System.out.println("接收日期:" + endtDate);// 1、创建 Period 对象Period period = Period.between(startDate, endtDate);// 2、获取两个日期对象的间隔信息System.out.println("间隔年份:" + period.getYears());System.out.println("间隔月份:" + period.getMonths());System.out.println("间隔天数:" + period.getDays());
}
执行结果:
2、Duration 类
Duration 类同样位于 java.time 包中,但它用于表示基于时间的时间间隔,即天、小时、分钟、秒、毫秒、纳秒的差异。它常用于处理时间之间的精确计算,例如计算两个时间点之间的差值。支持:LocalTime、LocalDateTime、Instant 等时间对象。
Duration 类的常用方法:
方法 | 说明 |
---|---|
public static Duration between(Temporal startTime, Temporal endTime) | 通过两个时间对象,创建 Duration 实例。 |
public long toDays() | 返回间隔多少天数。 |
public long toHours() | 返回间隔多少小时。 |
public long toMinutes() | 返回间隔多少分钟。 |
public long toSeconds() | 返回间隔多少秒数。 |
public long toMillis() | 返回间隔多少毫秒。 |
public long toNanos() | 返回间隔多少纳秒。 |
【示例】使用 Duration 时间间隔对象。
/*** 使用 Duration 时间间隔对象* @author pan_junbiao*/
@Test
public void testDuration()
{// 创建两个时间对象LocalDateTime startDate = LocalDateTime.of(2024, 11, 5, 16, 10, 18);LocalDateTime endtDate = LocalDateTime.of(2028, 12, 18, 18, 38, 56);System.out.println("开始时间:" + startDate);System.out.println("接收时间:" + endtDate);// 1、创建 Duration 对象Duration duration = Duration.between(startDate, endtDate);// 2、获取两个时间对象的间隔信息System.out.println("间隔天数:" + duration.toDays());System.out.println("间隔小时:" + duration.toHours());System.out.println("间隔分钟:" + duration.toMinutes());System.out.println("间隔毫秒:" + duration.toMillis());System.out.println("间隔纳秒:" + duration.toNanos());
}
执行结果: