/**
* 计算两个时间的 时分秒 差值
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return 时分秒差值 格式 00:00:00
*/
public static String calculateTimeDifference(Date startDate, Date endDate) {
if (null == startDate || null == endDate) {
return "";
}
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime fromDateTime = LocalDateTime.ofInstant(startDate.toInstant(), zoneId);
LocalDateTime toDateTime = LocalDateTime.ofInstant(endDate.toInstant(), zoneId);
LocalDateTime tempDateTime = LocalDateTime.from(fromDateTime);
long years = tempDateTime.until(toDateTime, ChronoUnit.YEARS);
tempDateTime = tempDateTime.plusYears(years);
long months = tempDateTime.until(toDateTime, ChronoUnit.MONTHS);
tempDateTime = tempDateTime.plusMonths(months);
long days = tempDateTime.until(toDateTime, ChronoUnit.DAYS);
tempDateTime = tempDateTime.plusDays(days);
long hours = tempDateTime.until(toDateTime, ChronoUnit.HOURS);
tempDateTime = tempDateTime.plusHours(hours);
long minutes = tempDateTime.until(toDateTime, ChronoUnit.MINUTES);
tempDateTime = tempDateTime.plusMinutes(minutes);
long seconds = tempDateTime.until(toDateTime, ChronoUnit.SECONDS);
String s = (hours + ":")
+ (minutes + ":")
+ (seconds + "");
String currentDateTimeStr = DateUtils.getCurrentDateTimeStr();
String s1 = currentDateTimeStr.substring(0, 11) + s;
DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd H:m:s");
DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
return LocalDateTime.parse(s1, inputFormat).format(outputFormat).substring(11);
}