java8中计算2个日期时间之间相差多少月

Java8

java8中计算2个日期时间之间相差多少月

方法一 (计算时不计算天)

 DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM");
        //未来时间
        LocalDate afterDate = LocalDate.of(2021, 1, 9);
        YearMonth afterMonth = YearMonth.parse(sdf.format(afterDate), sdf);
        // 过去时间
        LocalDate beforeDate = LocalDate.of(2019, 2, 10);
        YearMonth beforeMonth = YearMonth.parse(sdf.format(beforeDate), sdf);
        
        int monDif = afterMonth.getMonthValue() - beforeMonth.getMonthValue();
        System.out.println("monDif:" + monDif);
        
        int month = (afterMonth.getYear() - beforeMonth.getYear())*12;
        System.out.println("month:"+ month);
        System.out.println("month+monDif:" + (month+monDif));

在这里插入图片描述

方法 2 (推荐, 计算时还会把天也计算上)

		LocalDate afterDate = LocalDate.of(2021, 1, 9);
        LocalDate beforeDate = LocalDate.of(2019, 2, 10);
        //月数
        long betweenMONTHS = ChronoUnit.MONTHS.between(beforeDate, afterDate);
        //年数
        long between1YEARS = ChronoUnit.YEARS.between(beforeDate, afterDate);
        //天数
        long between1DAYS = ChronoUnit.DAYS.between(beforeDate, afterDate);
        System.out.println(betweenMONTHS);
        System.out.println(between1YEARS);
        System.out.println(between1DAYS);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/loveyour_1314/article/details/105432584