87

如何在 Java 中将 x 天添加到日期?

例如,我的日期是01/01/2012,使用dd/mm/yyyy格式。

加上 5 天,输出应该是06/01/2012.

4

6 回答 6

111
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(new Date()); // Using today's date
c.add(Calendar.DATE, 5); // Adding 5 days
String output = sdf.format(c.getTime());
System.out.println(output);
于 2012-08-23T08:22:47.823 回答
50

java.time

通过 Java 8日期和时间 API,您可以使用LocalDate该类。

LocalDate.now().plusDays(nrOfDays)

请参阅Oracle 教程

于 2014-05-02T23:18:25.653 回答
23
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.YEAR, 2012);
cal.add(Calendar.DAY_OF_MONTH, 5);

您也可以像这样减去天数:Calendar.add(Calendar.DAY_OF_MONTH, -5);

于 2012-08-23T08:21:01.720 回答
21

这是一些简单的代码,可以打印五天后的日期:

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 5);
System.out.println(dateFormat.format(c.getTime()));

示例输出:

16/12/2021

另请参阅:日历#add

于 2013-12-26T07:31:03.580 回答
14

If you're using Joda-Time (and there are lots of good reasons to - a simple, intuitive API and thread safety) then you can do this trivially:

new LocalDate().plusDays(5);

to add 5 days to today's date, for example.

EDIT: My current advice would be to now use the Java 8 date/time API

于 2012-08-23T08:17:02.793 回答
13

简单,无需任何其他 API:

要将 8 天添加到当前日期:

Date today = new Date();
long ltime = today.getTime()+8*24*60*60*1000;
Date today8 = new Date(ltime);
于 2016-03-16T16:37:08.500 回答