第一种方法:
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
Date now = new Date();
String dateStart = "2022-12-02 20:15:58";
try {
Date d1=df.parse(dateStart);
//毫秒ms
long diff = now.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.print("两个时间相差:");
System.out.print(diffDays + " 天, ");
System.out.print(diffHours + " 小时, ");
System.out.print(diffMinutes + " 分钟, ");
System.out.print(diffSeconds + " 秒.");
} catch (ParseException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
Date now = new Date();
String dateStart = "2022-12-02 20:15:58";
try {
Date d1=df.parse(dateStart);
//毫秒ms
long diff = now.getTime() - d1.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
if(diffHours == 0){
System.out.println("两个时间相差:"+diffMinutes + "分"+diffSeconds + "秒" );
}else{
System.out.println("两个时间相差:"+diffHours + "小时"+diffMinutes + "分"+diffSeconds + "秒" );
}
} catch (ParseException e) {
e.printStackTrace();
}
}
第二中方法:
public static void main(String[] args) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
//Date now = df.parse("2004-03-26 13:31:40");
Date now = new Date();
Date date=df.parse("2022-12-02 20:10:24");
long l=now.getTime()-date.getTime();
*//*long day=l/(24*60*60*1000);*//*
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
} catch (ParseException e) {
e.printStackTrace();
}
}
第三种方法:推荐
/**
* 统计两个时间的时间差
* two-one
* 相差几秒几毫秒
*/
public static String getDistanceTime(String str1, String str2) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
Date one;
Date two;
long day = 0;//天数差
long hour = 0;//小时数差
long min = 0;//分钟数差
long second=0;//秒数差
long diff=0 ;//毫秒差
String result = "";
try {
final Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
one = df.parse(str1);
c.setTime(one);
two = df.parse(str2);
long time1 = one.getTime();
long time2 = two.getTime();
diff = time2 - time1;
day = diff / (24 * 60 * 60 * 1000);
hour = (diff / (60 * 60 * 1000) - day * 24);
min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
second = diff/1000;
System.out.println("day="+day+" hour="+hour+" min="+min+" ss="+second%60+" SSS="+diff%1000);
String daystr = day%30+"天";
String hourStr = hour%24+"小时";
String minStr = min%60+"分";
String secondStr = second%60+"秒";
if (day!=0){
result = result + daystr;
}
if (hour!=0){
result = result + hourStr;
}
if (min!=0){
result = result + minStr;
}
if (second!=0){
result = result + secondStr;
}
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}