在Android开发中,如果你使用的是java.time.Period
类来计算两个日期之间的天数,并且发现Period.getDays()
每次都返回0,这可能是因为Period
类的设计。Period
类的getDays()
方法返回的是两个日期之间的天数部分,而不是总天数。
假设你有两个日期:2023-01-01
和2023-01-10
。如果你使用Period
类来计算它们之间的差异:
LocalDate startDate = LocalDate.of(2023, 1, 1);
LocalDate endDate = LocalDate.of(2023, 1, 10);
Period period = Period.between(startDate, endDate);
int days = period.getDays(); // 这将返回0,因为没有完整的月份或年份差异
在这个例子中,period.getDays()
返回的是两个日期之间的天数部分,而不是总天数。因为这两个日期之间没有完整的月份或年份差异,所以getDays()
返回0。
如果你想要计算两个日期之间的总天数,可以使用ChronoUnit.DAYS.between()
方法:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
LocalDate startDate = LocalDate.of(2023, 1, 1);
LocalDate endDate = LocalDate.of(2023, 1, 10);
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
System.out.println("Days between: " + daysBetween); // 这将返回9
以下是一个完整的示例,展示了如何使用ChronoUnit.DAYS.between()
来计算两个日期之间的总天数:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate startDate = LocalDate.of(2023, 1, 1);
LocalDate endDate = LocalDate.of(2023, 1, 10);
long daysBetween = ChronoUnit.DAYS.between(startDate, endDate);
System.out.println("Days between: " + daysBetween); // 这将返回9
}
}
通过使用ChronoUnit.DAYS.between()
方法,你可以准确地计算两个日期之间的总天数,而不是仅仅获取天数部分。
领取专属 10元无门槛券
手把手带您无忧上云