首页 > 解决方案 > -1个月+1天的时间操作与开始仍有1个月的差异

问题描述

我想达到 -1month +1day 的日期,这应该与开始日期相差 0 个月。

使用 joda-time 2.10:

int day = 29;
LocalDate date1 = new LocalDate(new GregorianCalendar(2019, Calendar.JUNE, day).getTime());
LocalDate date2 = date1.plusMonths(-1).plusDays(1);
Months.monthsBetween(date1,date2).getMonths(); // returns 0 <- it's OK

但与输入相同的代码int day = 30;返回 -1 这是不好的

这在 Joda 库中看起来是无关紧要的。这是一种情况:按 -1month 更改日期按班次月份编号并保持日期编号不大于输入,但日期之间的月份差异取决于月份中的某天。

你知道任何替代和有效的解决方案吗?


我找到了带有ChronoUnit的 JSR-310 - 解决了这个问题,但它需要 Java8。我想留在Java7上。

标签: javatimejava-7jodatime

解决方案


推荐阅读