我认为我在这里遗漏了一些微妙之处,因为我读到的所有内容都表明这应该有效。我需要获取 Android 中两个日期之间的月份和天数。也就是说,有多少整月加上任何额外的天数。我需要它作为数字输出,而不是打印字符串。这是我使用 Joda 所做的事情:
void method(DateTime begin, DateTime end) {
Period period = Period period = new Period(begin, end);
final int months = period.getMonths();
final int additionalDays = period.getDays();
问题是additionalDays
始终为零。例如,2015 年 7 月 1 日到 2015 年 11 月 29 日应该是 4 个月零 29 天,但我得到的是 4 个月零 0 天。
最佳答案
来自documentation如果不支持,Period.getDays() 将返回 0。我不确定为什么不支持这种情况,但我想提供一种不同的方法:使用 Days
和 Months
类及其 monthsBetween()
和 daysBetween()
方法。请注意,您还必须减去之间的月份:
// Get months
int months = Months.monthsBetween(begin, end).getMonths();
// Subtract this number of months from the end date so we can calculate days
DateTime newEnd = end.minusMonths(months);
// Get days
int days = Days.daysBetween(begin, newEnd).getDays();
如果您不在中间执行此减法,您将得到不正确的结果,因为您将得到所有天的结果。
关于java - 乔达 : how to get months and days between two dates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33614185/