有两种方式获取java时间差:
一.通过Calendar的getTimeInMillis()方法获得日期的毫秒数,然后对毫秒相减取差值,再计算相差的秒数,分钟,小时,天等
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Main{
public static void main(String[] args)
{
Calendar c1 = Calendar.getInstance();
c1.clear();
Calendar c2 = Calendar.getInstance();
c2.clear();
// Set the date for both of the calendar instance
c1.set(2020, 0, 1);
c2.set(2020, 2, 1);
// Print out the dates
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Date 1: " + sdf.format(c1.getTime()));
System.out.println("Date 2: " + sdf.format(c2.getTime()));
// Get the represented date in milliseconds
long time1 = c1.getTimeInMillis();
long time2 = c2.getTimeInMillis();
// Calculate difference in milliseconds
long diff = time2 - time1;
// Difference in seconds
long diffSec = diff / 1000;
System.out.println("Difference in seconds " + diffSec);
// Difference in minutes
long diffMin = diff / (60 * 1000);
System.out.println("Difference in minutes " + diffMin);
// Difference in hours
long diffHours = diff / (60 * 60 * 1000);
System.out.println("Difference in hours " + diffHours);
// Difference in days
long diffDays = diff / (24 * 60 * 60 * 1000);
System.out.println("Difference in days " + diffDays);
}
}
输出如下:
Date 1: 2020-01-01
Date 2: 2020-03-01
Difference in seconds 5184000
Difference in minutes 86400
Difference in hours 1440
Difference in days 60
二.通过方式
public class Datetest {
public static void main(String ss[]) {
SimpleDateFormat d= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//格式化时间
String nowtime=d.format(new Date());//按以上格式 将当前时间转换成字符串
System.out.println("当前时间:"+nowtime);
String testtime="2007-09-05 16:07:35";//测试时间
System.out.println("测试时间:"+testtime);
try {
long result=(d.parse(nowtime).getTime()-d.parse(testtime).getTime())/1000;//当前时间减去测试时间(这个的除以1000得到秒,相应的60000得到分,3600000得到小时)
System.out.println("当前时间减去测试时间="+result+"秒");
} catch (ParseException e) {
e.printStackTrace();
}
}
}