使用LocalDate和Period的日期之间的时间

时间:2015-07-07 16:48:11

标签: java

如果我这样做:

public static void main(String[] args) {
    LocalDate d1 = LocalDate.of(2015, Month.MARCH, 12);
    LocalDate d2 = LocalDate.of(2015, Month.APRIL, 13);
    System.out.println(d1.until(d2).getDays());
    // Prints 11
    LocalDate d3 = LocalDate.of(2015, Month.APRIL, 25);
    // Prints 23.

两者都不正确。第二个输出是有意义的,因为它们之间有1个月和23天。

如何获得天数之间的总天数?

我希望第一个输出为32天,第二个输出为44天(两天之间的总天数) 两个日期)。

我做错了什么?我没有看到totalDays()方法。

2 个答案:

答案 0 :(得分:2)

如果您只对几天感兴趣,则可能不应使用句点(包含年份和月份组件)。您问题的一个解决方案是:

System.out.println(DAYS.between(d1, d2)); //32

或者:

System.out.println(d1.until(d2, DAYS)); //32

注意:我正在使用import static java.time.temporal.ChronoUnit.DAYS;

答案 1 :(得分:0)

我不知道你想用日期做多少,有可能你不需要它,但我真的建议Joda Timehere是如何获得日期的两个日期之间。
在Java 8中,我们终于拥有了很好的Dates库,但是如果你不使用Java 8那么你必须得到Joda Time