分别用jdk8和之前的版本进行计算
public class Test {
public static long dayDiff(String date1, String date2,String format) {
if (null == date1 || null == date2) {
return -1;
}
SimpleDateFormat formater = new SimpleDateFormat(format);
long diff = 0;
try {
long d1 = formater.parse(date1).getTime();
long d2 = formater.parse(date2).getTime();
//diff=(Math.abs(d1-d2) / (1000 * 60 * 60 * 24));
diff=(d2-d1)/(1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return diff;
}
public static long jdk8DayDiff(String date1, String date2,String format) {
if (null == date1 || null == date2) {
return -1;
}
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(format);
LocalDate d1 = LocalDate.parse(date1,dtf);
LocalDate d2 = LocalDate.parse(date2,dtf);
long diff = ChronoUnit.DAYS.between(d1, d2);
return diff;
}
public static void main(String[] args) {
String d1 = "2019-10-01";
String d2 = "2020-01-17";
long diff1 = dayDiff(d1,d2,"yyyy-MM-dd");
long diff2 = jdk8DayDiff(d1,d2,"yyyy-MM-dd");
System.out.println(diff1);
System.out.println(diff2);
}
}
结果:
108
108