java.util.Date-从日期删除三个月?


问题内容

我有类型的日期 java.util.Date

我想从中减去三个月。

在API中找不到很多乐趣。


问题答案:

这是普通的 JDK 版本,它需要Calendar该类作为帮助程序:

Date referenceDate = new Date();
Calendar c = Calendar.getInstance(); 
c.setTime(referenceDate); 
c.add(Calendar.MONTH, -3);
return c.getTime();

但是,由于和类的各种缺点,您应该认真考虑使用 Joda库
。使用Joda,您可以执行以下操作:Date``Calendar

new DateTime().minusMonths(3).toDate();

或者,如果您要从给定日期而不是当前日期中减去:

new DateTime(referenceDate).minusMonths(3).toDate();

Java 8更新: 使用Java 8,您还可以使用新的JSR 310 API(受Joda的启发):

LocalDateTime.from(referenceDate.toInstant()).minusMonths(3);