how to add days to java simple date format

2020-01-27 08:25发布

How should I add 120 days to my current date which I got using simple date format?

I have seen few posts about it but couldn't get it to work,

My code is below:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
//get current date time with Date()
Date date = new Date();

Do I need to use the Calendar library or can I just do it with simple date format?

2条回答
beautiful°
2楼-- · 2020-01-27 08:49

Basically, you can simple use a Calendar which has the capacity to automatically roll the various fields of a date based on the changes to a single field, for example...

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, 120);
date = cal.getTime();

Take a closer look at Calendar for more details.

Yes, there is a way to do this using Joda Time, but I could type this example quicker ;)

Update with JodaTime example

The following is an example using JodaTime. You could parse the String value directly using JodaTime, but since you've already done that, I've not bothered...

Date date = ...;
DateTime dt = new DateTime(date);
dt = dt.plusDays(120);
date = dt.toDate();
查看更多
趁早两清
3楼-- · 2020-01-27 09:03

I would suggest you use Joda DateTime if possible. The advantage is it handles TimeZone very gracefully. Here's how to add days:

DateTime added = dt.plusDays(120);

Reference: http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html#plusDays(int)

查看更多
登录 后发表回答