知乎专栏 |
Duration字面意思是持续时间
Duration duration = Duration.ofSeconds(30); 使用between()方法创建Duration对象,计算两个时间点之间的时间间隔。例如: LocalDateTime start = LocalDateTime.now(); LocalDateTime end = start.plusMinutes(15); Duration duration = Duration.between(start, end); Duration duration = Duration.ofMinutes(30); long minutes = duration.toMinutes(); // 获取时间间隔的分钟数 Duration halfDay = Duration.ofHours(12); Duration updatedDuration = duration.plusMinutes(15); // 增加15分钟的时间间隔 boolean isNegative = duration.isNegative(); // 判断是否为负时间间隔
Duration durationDays = Duration.ofDays(1);//天 Duration durationHours = Duration.ofHours(1);//小时 Duration durationMinutes = Duration.ofMinutes(1);//分 Duration durationSeconds = Duration.ofSeconds(1);//秒 Duration durationMillis = Duration.ofMillis(1);//毫秒
Duration duration = Duration.ofDays(1);//设置一天时间 long timeHours = duration.toHours();//小时 long timeMinutes = duration.toMinutes();//分钟 long timeMillis = duration.toMillis();//毫秒 long timeNanos = duration.toNanos();//纳秒 String timeString = duration.toString(); //此持续时间的字符串表示形式,使用基于ISO-8601秒*的表示形式,例如 PT8H6M12.345S System.out.println("timeHours时间="+timeHours); System.out.println("timeMinutes时间="+timeMinutes); System.out.println("timeMillis时间="+timeMillis); System.out.println("timeNanos时间="+timeNanos); System.out.println("timeString时间="+timeString);
long todayTimeMillis = System.currentTimeMillis(); long yesterdayTimeMillis = todayTimeMillis - 24 * 60 * 60 * 1000; Instant start = Instant.ofEpochMilli(yesterdayTimeMillis); Instant end = Instant.ofEpochMilli(todayTimeMillis); Duration duration = Duration.between(start, end); System.out.println("天数="+duration.toDays()); 注意这个天数是可以负数,意味着如果开始时间比结束时间更后面就会得到负数天数