在Java中对日期进行操作

在Java中对日期进行操作,java,date,Java,Date,在java中对util.date对象进行操作的最佳方法是什么 例如: 我有一个日期2018.10.02,我想在这个日期上再加上3个月,并获得另一个具有良好日期的util.date对象 增加或减少日、年或小时也是如此 谢谢您可以使用自java8以来的java.time包,例如: Date date = new Date(); Instant instant = Instant.ofEpochMilli(date.getTime()); ZonedDateTime zonedDateTime =

在java中对
util.date
对象进行操作的最佳方法是什么

例如: 我有一个日期2018.10.02,我想在这个日期上再加上3个月,并获得另一个具有良好日期的
util.date
对象

增加或减少日、年或小时也是如此


谢谢

您可以使用自java8以来的
java.time
包,例如:

Date date = new Date();

Instant instant = Instant.ofEpochMilli(date.getTime());

ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
zonedDateTime = zonedDateTime.plusMonths(3);

Date afterThreeMonth = Date.from(zonedDateTime.toInstant())

新类
java.time.LocalDate
更适合这种操作:

    LocalDate date = LocalDate.parse("2018-10-02").plusMonths(3);

最好的方法是使用Calendar类使用新的日期类型。看看我看到的这篇文章,但我想在发布之前获得一个日期对象,而不是LocalDateAlways搜索堆栈溢出。具体来说:搜索&减号方法。我如何才能取回日期?@shmoolk我看到了更新后的答案。如果使用Java 8或更高版本,并且需要一个老式的
Date
对象来创建一个您现在不想升级的API,那么下面的方法稍微简单一些:
Date.from(zonedDateTime.toInstant())
@OleV.V。谢谢:)我需要一个结果的Util.date