我有两个约会:
开始日期: "2016-08-31"
结束日期: "2016-11-30"
在上述两个日期之间的91天持续时间,我希望我的代码返回3个月的持续时间,但以下方法仅返回2个月。有谁有更好的建议?还是你们认为这是Java
8中的错误?工期为91天,仅返回2个月。
非常感谢你的帮助。
方法1:
Period diff = Period.between(LocalDate.parse("2016-08-31"),
LocalDate.parse("2016-11-30"));
方法2:
long daysBetween = ChronoUnit.MONTHS.between(LocalDate.parse("2016-08-31"),
LocalDate.parse("2016-11-30"));
方法3:
我尝试使用Joda库而不是Java 8
API,它可以工作。它会返回3,它看起来像Java持续时间月份的计算也使用了天的值。但就我而言,我不能在项目中使用Joda。因此仍在寻找其他解决方案。
LocalDate dateBefore= LocalDate.parse("2016-08-31");
LocalDate dateAfter = LocalDate.parse("2016-11-30");
int months = Months.monthsBetween(dateBefore, dateAfter).getMonths();
System.out.println(months);