LocalDateTime start = LocalDateTime.parse("2020-01-01T08:00:00");LocalDateTime end = LocalDateTime.parse("2020-01-01T12:00:00");assertFalse(Duration.between(start, end).isNegative());assertTrue(Duration.between(end, start).isNegative());LocalDateTime theTime = LocalDateTime.parse("2023-09-09...
Java 8 引入 Period 和 Duration 类用于时间计算。Period 处理日期差异,适用于年月日;Duration 处理时间差异,适用于秒和纳秒。两者均有多种创建和操作方法,提供更清晰的时间间隔处理。
Period period = Period.between(startDate, endDate); 当我们获得 Period 对象后,我们可以用 Period 对象中的 *getYears(), getMonths(), getDays() 方法来获得具体的值。 logger.info(String.format("Years:%d months:%d days:%d", period.getYears(), period.getMonths(), period.getDays())); isNeg...
Java JDK1.8时间区间计算类Period和Duration 在Java项目中,时间格式化在很多时候都会用到。在JDK1.8之前我们都是通过自己封装的时间工具类来实现,在1.8之后我们可以使用它提供的Period和Duration来实现时间区间和转换计算。使用这两个工具,我们可以计算年、月、日、周、天、时、分、秒、纳秒等。 目录 传统封装Util工具...
和Period 相对,Duration 类是对时间进行操作的。 具体操作的单位为秒(seconds )和纳秒(nanoseconds )。 因可以直接对纳秒进行操作,所以 Duration 能比较精确的对时间进行计算。 另外,要获得 Duration 对象,我们需要从 instants 来进行比较,使用 between() 方法来比较 instants 。
点击看下Duration.between源码,可以看到注释上明确有标注着,这个方法是用于秒级的时间段间隔计算,而我们这里传入的是两个天级别的数据,所以就不支持此类型运算,然后抛异常了。 再看下使用Period的实现: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 ...
Jdk8中Period和Duration的主要区别如下:属性范围:Period:仅包含年、月、天的属性,用于表示如“2年3个月4天”的时间量。Duration:包含秒和纳秒属性,但可以转换为天数、小时数、分钟数和毫秒数等,用于表示如“34.5秒”的时间量。适用场景:Period:主要用于比较两个日期,关注年、月、天的差异。
Period :基于日期值 Duration:基于时间值 它们最大的作用就不需要你自己复杂的计算关于两个年月日之间的相差的时间或日期啦. Period 类与 Duration 类都是一段持续时间的概念,如果需要对比时间,它们就需要一个固定的时间值,所以就需要 LocalDate 类与 Instant 类来配合它们使用: ...
3.Period和Duration的区别 (1)包含属性不同 Period包含年数,月数,天数,而Duration只包含秒,纳秒。 Period只能返回年数,月数,天数;Duration可以返回天数,小时数,分钟数,毫秒数等。 (2)between方法可以使用的类型不同 Period只能使用LocalDate,Duration可以使用所有包含了time部分且实现了Temporal接口的类,比如LocalDateTi...
Duration类通过年月日时分秒相结合来描述一个时间量,最高精度是纳秒。时间量可以为正也可以为负,比如1天(86400秒0纳秒)、-1天(-86400秒0纳秒)、1年(31556952秒0纳秒)、1毫秒(0秒1000000纳秒)等。 (2)案例 案例截图如下: 打印截图如下: 二.Period时间间隔(年、月、日) ...