LocalDate startDate = LocalDate.of(2015, 2, 20);LocalDate endDate = LocalDate.of(2017, 1, 15);Period period = Period.between(startDate, endDate);当我们获得 Period 对象后,我们可以用 Period 对象中的 *getYears(), getMonths(), getDays() 方法来获得具体的值。logger.info(String.format("...
Java 8 引入 Period 和 Duration 类用于时间计算。Period 处理日期差异,适用于年月日;Duration 处理时间差异,适用于秒和纳秒。两者均有多种创建和操作方法,提供更清晰的时间间隔处理。
当然,我们也可以使用单位来构造一个 Duration 对象,这个和 Period 的构造方法基本相同。 可以使用的方法有:ofDays(), ofHours(), ofMillis(), ofMinutes(), ofNanos(), ofSeconds(): Duration fromDays = Duration.ofDays(1); assertEquals(86400, fromDays.getSeconds()); Duration fromMinutes = Duration.ofMinu...
Period period = Period.between(startDate, endDate); 1. 2. 3. 4. 当我们获得 Period 对象后,我们可以用 Period 对象中的 *getYears(), getMonths(), getDays() 方法来获得具体的值。 (String.format("Years:%d months:%d days:%d", period.getYears(), period.getMonths(), period.getDays()))...
Java JDK1.8时间区间计算类Period和Duration 在Java项目中,时间格式化在很多时候都会用到。在JDK1.8之前我们都是通过自己封装的时间工具类来实现,在1.8之后我们可以使用它提供的Period和Duration来实现时间区间和转换计算。使用这两个工具,我们可以计算年、月、日、周、天、时、分、秒、纳秒等。
点击看下Duration.between源码,可以看到注释上明确有标注着,这个方法是用于秒级的时间段间隔计算,而我们这里传入的是两个天级别的数据,所以就不支持此类型运算,然后抛异常了。 再看下使用Period的实现: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
Jdk8中Period和Duration的主要区别如下:属性范围:Period:仅包含年、月、天的属性,用于表示如“2年3个月4天”的时间量。Duration:包含秒和纳秒属性,但可以转换为天数、小时数、分钟数和毫秒数等,用于表示如“34.5秒”的时间量。适用场景:Period:主要用于比较两个日期,关注年、月、天的差异。
Period 对应使用 LocalDate ,它们的作用范围域都是日期(年/月/日) Duration 对应使用 Instant,它们的作用范围域都是时间(天/时/分/秒/毫秒/纳秒) LocalDate 精度到日期记录固定时间值的LocalDate,创建方式: 复制代码 LocalDatelocalDate1=LocalDate.of(2019,9,1);LocalDatelocalDate2=LocalDate.ofYearDay(2019...
Duration类通过年月日时分秒相结合来描述一个时间量,最高精度是纳秒。时间量可以为正也可以为负,比如1天(86400秒0纳秒)、-1天(-86400秒0纳秒)、1年(31556952秒0纳秒)、1毫秒(0秒1000000纳秒)等。 (2)案例 案例截图如下: 打印截图如下: 二.Period时间间隔(年、月、日) ...
在Java 8的日期时间API中,Period和Duration是两个重要的时间量概念。Period是线程安全的,它基于ISO-8601日历系统,用于表示如“2年3个月4天”的时间量,主要关注年、月、天的属性。它用于比较两个日期,例如,years:0 months:1 days:17。而Duration同样为final且线程安全,主要用于基于时间的量,如...