Java 8 计算两个日期之间的月份
注意:这不是以下任一项的副本
我有两个日期:
- 开始日期:
"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,它的工作原理。它 loos 将返回 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);