Java中計算兩個日期間的天數

davelet發表於2018-11-21

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);


相關文章