java计算两个字符串日期的相差天数

分别用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

原创文章 317 获赞 416 访问量 112万+

猜你喜欢

转载自blog.csdn.net/u014082714/article/details/104021008
今日推荐