SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date endTime = sdf.parse("2018-11-08 10:50:49");
Date startTime = sdf.parse("2018-11-07 10:50:50");
long start = startTime.getTime();
long end = endTime.getTime();
long between = end - start;
// 相差天数
long day = between/(24*60*60*1000);
// 相差小时数 一共相差的毫秒数 - 天所占的毫秒数
long hour = (between- day*(24*60*60*1000))/(60*60*1000);
// 相差分钟数 一共相差的毫秒数 - 天所占的毫秒数-小时所占的毫秒数
long minute = (between- day*(24*60*60*1000) - hour*(60*60*1000) )/(60*1000);
// 相差秒数
long second = (between - day*(24*60*60*1000) - hour*(60*60*1000)- minute*(60*1000)) /1000;
System.err.println("相差:"+day+"天"+hour+"小时"+minute+"分钟"+second+"秒");
使用 jdk8 的方法计算俩个日期相差多少秒:
LocalDateTime now = LocalDateTime.now(); LocalDate localDate = LocalDate.now().plusDays(1); long seconds = ChronoUnit.SECONDS.between(now, loclDate);