Jodatime有一种方法可以获得自某个较旧日期以来的月份和日期吗?

时间:2013-04-17 18:45:11

标签: java jodatime

我想确切知道从今天开始有多少个月和几天(可能是几年)。有没有办法做到这一点?

我知道如何获得月份的差异,我知道如何在几天内获得差异。但我无法得到月和日。

例如:

old ='2013-03-04' now ='2013-04-17'

所以我要找的结果是1个月和13 *天

*也许它的12我不是很确定。

2 个答案:

答案 0 :(得分:4)

这可以通过在JodaTime中使用Period来完成。

例如,

LocalDate old = new LocalDate(2013, 3, 4);
LocalDate now = new LocalDate(2013, 4, 17);

Period p = new Period(old, now, PeriodType.yearMonthDay());

要获得月份,请使用p.getMonths()获取日期p.getDays()

示例的结果是1个月,13天。

答案 1 :(得分:1)

是的,请参阅the documentation间隔:

  

<强>间隔

     

Joda-Time中的间隔表示从1开始的时间间隔   瞬间到了另一个瞬间。两个瞬间都是完全指定的瞬间   在日期时间连续体中,包含时区。

     

间隔实现为半开放,也就是说开始   瞬间是包容性的,但最终瞬间是独家的。结局是   始终大于或等于开头。两个终点都是   限于具有相同的年表和相同的时区。

     

提供了两个实现,Interval和MutableInterval,两者   是ReadableInterval的特化。