我需要在幾個月內兩個日期之間的差異之間的月份差,我使用約達時間,問題是這樣的:喬達時間 - 兩個日期
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