我希望两个日期之间的差异。月份差异计算如
start_date = "2017-08-30";
end_date = "2017-09-01";
月份差异是0
和
start_date = "2017-06-05";
end_date = "2017-08-20";
月份的差异为2
和 start_date =" 2017-08-15&#34 ;; end_date =" 2017-08-15&#34 ;; diff的月份是1
我正在使用java的日历来处理日期。谷歌之后我无法找到准确的解决方案,任何人都可以帮助我如何计算两个日期之间正确的月差异。
答案 0 :(得分:2)
使用java 8可以计算2 Temporal
个对象之间的差异
LocalDate start = LocalDate.of(2017, 6, 5);
LocalDate end = LocalDate.of(2017, 8, 15);
long delta = ChronoUnit.MONTHS.between(start, end);
System.out.println(delta);
当然你需要从SLQ数据创建那些localDate实例......但这不是大问题
使用Joda(实际上与java8几乎相同):
DateTime start = new DateTime().withDate(2017, 6, 5);
DateTime end = new DateTime().withDate(2017, 8, 15);
System.out.println(Months.monthsBetween(start , end).getMonths());
对于旧的java.util.Date
,请参阅重复的问题