string转为date
// 2023-11-24 16:50:00 这里的时间自定义可修改
Date date= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2023-11-24 16:50:00");
一、获取大的时间,也就是最靠后的时间
//1.大时间 2023-11-24 05:00:00 可自定义
Date bigDate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2023-11-24 05:00:00");
//2.大时间 获取现在的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date bigDate=df.parse(df.format(new Date()));
二、获取小的时间,也就是靠前的时间
//小时间 2023-11-24 16:50:00时间自定义
Date littleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2023-11-24 16:50:00");
三、利用该工具类计算
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 时间差工具类(date日期类型直接计算 或者string类型日期转date类型日期计算)
*
* @author 假客套
*/
public class TimeDifferenceUtils {
public static void main(String[] args) throws ParseException {
//计算date类型时间差
//大时间 现在的时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date bigDate = df.parse(df.format(new Date()));
//小时间
Date littleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2023-11-23 16:50:00");
System.out.println(getDateDifference(bigDate, littleDate));
//分割线
System.out.println("================================================");
//计算String类型时间差
//大时间
String bigDate2 = "2023-11-23 16:50:00";
//小时间
String littleDate2 = "2023-11-23 16:50:00";
System.out.println(getStringDifference(bigDate2, littleDate2));
}
/**
* 计算date时间类型时间差
*
* @param bigDate 大时间
* @param littleDate 小时间
* @return
*/
public static String getDateDifference(Date bigDate, Date littleDate) {
//天
long day = 1000 * 24 * 60 * 60;
//时
long hour = 1000 * 60 * 60;
//分
long minute = 1000 * 60;
//秒
long second = 1000;
// 获得两个时间的毫秒时间差异
long time = bigDate.getTime() - littleDate.getTime();
// 计算差多少天
long difference_day = time / day;
// 计算差多少小时
long difference_hour = time % day / hour;
// 计算差多少分钟
long difference_minute = time % day % hour / minute;
// 计算差多少秒//输出结果
long difference_second = time % day % hour % minute / second;
// n天n小时n分钟n秒
return difference_day + "天" + difference_hour + "小时" + difference_minute + "分钟" + difference_second + "秒";
}
/**
* 计算String时间类型时间差,先转换date行再复用上方的date计算方法
*
* @param bigDate 大时间
* @param littleDate 小时间
* @return
*/
public static String getStringDifference(String bigDate, String littleDate) throws ParseException {
//String转Date
//大时间
Date bigDate2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(bigDate);
//小时间
Date littleDate2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(littleDate);
//直接复用date计算方法
return getDateDifference(bigDate2, littleDate2);
}
}