Java如何获取Joda-Time中两个日期之间的天数?

以下代码段显示了如何获取两个日期之间的天数。您可以使用该Days.daysBetween()方法并传递要计算的日期。此方法返回一个Days对象。要获得天数,请调用该getDays()方法。

package org.nhooo.example.joda;

import org.joda.time.DateMidnight;
import org.joda.time.Days;
import org.joda.time.LocalDate;

public class DaysBetweenDemo {
    public static void main(String[] args) {
        //定义开始和结束日期。我们使用DateMidnight
        // 类以确保计算从
        // 午夜。
        DateMidnight start = new DateMidnight("2019-07-01");
        DateMidnight end = new DateMidnight("2019-07-22");

        // 获取开始日期和结束日期之间的天数。
        int days = Days.daysBetween(start, end).getDays();

        // 打印结果。
        System.out.println("Days between " +
                start.toString("yyyy-MM-dd") + " and " +
                end.toString("yyyy-MM-dd") + " = " +
                days + " day(s)");

        // 使用LocalDate对象。
        LocalDate date1 = LocalDate.parse("2019-07-01");
        LocalDate date2 = LocalDate.now();
        days = Days.daysBetween(date1, date2).getDays();

        // 打印结果。
        System.out.println("Days between " +
                date1.toString("yyyy-MM-dd") + " and " +
                date2.toString("yyyy-MM-dd") + " = " +
                days + " day(s)");
    }
}

这是程序的结果:

Days between 2019-07-01 and 2019-07-22 = 21 day(s)
Days between 2019-07-01 and 2019-07-22 = 21 day(s)

要计算Java 8中两个日期对象之间的差异,请参见以下示例:如何计算两个日期之间的差异?

Maven依赖

<!-- https://search.maven.org/remotecontent?filepath=joda-time/joda-time/2.10.3/joda-time-2.10.3.jar -->
<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.10.3</version>
</dependency>

Maven中央