мне нужно, чтобы получить разницу в месяцах между двумя датами, я использую Joda время, проблема заключается в следующем:Joda Время - разница в месяцах между двумя датами
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
Почему вы используете 'новое Datetime(). WithDate()' в первую очередь? Он создает экземпляр DateTime текущего момента и затем меняет его (оставляя поля времени как есть). Если вы хотите создать только новую конкретную дату без времени, просто используйте [LocalDate] (http://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html), а затем «Months.monthsBetween» (date1, date2) 'будет работать нормально. – djxak