天天看點

Java中計算兩個日期間的天數jdk 8 以前jdk 8 以來

jdk 8 以前

日期api是

java.util.Date

,要計算兩個 Date 間的天數有如下幾種方法:

  1. 通過兩個日期間的毫秒數去除以每天的毫秒數,根據需要自行決定是否需要 + 1
Date d1 = new Date(), d2 = new Date();
        int days = (int) ((d1.getTime() - d2.getTime()) / (24*3600*1000));           
  1. 使用 Hutool工具包
Date d1 = new Date(), d2 = new Date();
        int day2s = (int) DateUtil.betweenDay(d1, d2, false);           
  1. 使用jodaTime工具包
Interval interval = new Interval(oldTime, new Instant());           

jdk 8 以來

日期api變成了

java.time.LocalDate

。除了你想把LocalDate轉成Date然後像上面一樣求解以外(當然不推薦了!),可以使用如下方法:

LocalDate to = LocalDate.now();
        LocalDate from = to.withDayOfYear(1);
        int days = (int) ChronoUnit.DAYS.between(from, to);