概述:使用LocalDateTime计算两时间的时间差,LocalDateTime自带的方法duration.toXXX计算的是两时间之间"总共"差了多少天/多少小时/多少分钟...,所以需要转换计算一下
package cn.itcast.mp;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class TestTime {
public static void main(String[] args) {
String time1 = "2022-08-22 14:11:12";
String time2 = "2022-09-21 13:09:20";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
//将String转换为localDateTime类型
LocalDateTime localDateTime1 = LocalDateTime.parse(time1,dateTimeFormatter);
LocalDateTime localDateTime2 = LocalDateTime.parse(time2,dateTimeFormatter);
//LocalDateTime自带时间差计算(开始时间,结束时间)
Duration duration = Duration.between(localDateTime1,localDateTime2);
//两个时间之间,总共差的天/时/分/秒,
long day = duration.toDays();
long hours = duration.toHours();
long minute = duration.toMinutes();
//toMillis()获取的是毫秒所以除以1000换算成秒
long second = duration.toMillis()/1000;
//两个时间之间差了几天又几时又几分又几秒
long Hours = hours - day * 24;
long Minute = (minute - day * 24 * 60) - (Hours * 60);
long Second = (second - day * 24 * 60 * 60) - (Hours * 60 * 60) - (Minute * 60);
System.out.println("time1与time2之间的时间差"+
day+"天"+
Hours+"小时"+
Minute+"分钟"+
Second+"秒");
}
}