我使用Joda时间库从LocalDate中减去一个月:
LocalDate date = new LocalDate(2013, 3, 31);
System.out.println(date.minusMonths(1));其结果是2013-02-28,这正是我直觉所期望的,而且API接口也对此进行了记录。
如果减去月份使月中的日无效,则调整为该月份中的最后一个有效日。
但是,在我的当前项目中,我需要兼容一些现有的PHP代码,如下所示:
$date = new \DateTime('2013-03-31');
echo $date->sub(new \DateInterval('P1M'))->format('Y-m-d');这里的结果将是2013-03-03年,即是“滚动”到下个月。
如何使用Joda时间实现同样的行为?
发布于 2013-04-16 14:14:54
PHP似乎减去了它在前一个月中发现的天数。这应该适用于Joda:
LocalDate date = new LocalDate(2013, 3, 31);
int numberOfDays = date.minusMonths(1).dayOfMonth().getMaximumValue();
System.out.println(date.minusDays(numberOfDays));https://stackoverflow.com/questions/16039169
复制相似问题