我需要在几个月内两个日期之间的差异之间的月份差,我使用约达时间,问题是这样的:乔达时间 - 两个日期
DateTime date1 = new DateTime().withDate(2015, 2, 1);
DateTime date2 = new DateTime().withDate(2015, 1, 1);
Months m = Months.monthsBetween(date1, date2);
int monthDif = m.getMonths();//this return 0
返回0,因为没有在两个日期中间的月份中,我需要在几个月内返回差值,而不是在几个月之间,如果日期相同,则加1会有问题。
即使上面的问题是关于天,它是非常类似于你的问题,解决方案是相同的,调用'DateTime#toLocalDate()'将'LocalDate'传递给'Months#monthsBetween',而不是'DateTime '。 – Tom
为什么你首先使用'new Datetime()。withDate()'?它创建当前时刻的DateTime实例,然后更改它(将时间字段保持原样)。如果你想没有时间创建新的特定日期,只需使用[LocalDate](http://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html),然后选择Months.monthsBetween (date1,date2)'会正常工作。 – djxak