Dagen toevoegen aan een datum in Java

Hoe voeg ik x dagen toe aan een datum in Java?

Mijn datum is bijvoorbeeld (dd/mm/jjjj) = 01/01/2012

Als u 5 dagen toevoegt, moet de uitvoer 06/01/2012zijn.


Antwoord 1, autoriteit 100%

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);

Antwoord 2, autoriteit 45%

java.time

Met de Java 8 Date and Time APIkun je de LocalDateklasse.

LocalDate.now().plusDays(nrOfDays)

Zie de Oracle-zelfstudie.


Antwoord 3, autoriteit 20%

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);

Je kunt ook dagen aftrekken zoals Calendar.add(Calendar.DAY_OF_MONTH, -5);


Antwoord 4, autoriteit 18%

Hier is een eenvoudige code om uitvoer te geven als currentdate+ D days= some 'x' date(toekomstige datum):

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

Antwoord 5, autoriteit 12%

Als je Joda-Timegebruikt (en er zijn veel goede redenen to – een eenvoudige, intuïtieve API en thread-safety) dan kun je dit triviaal doen:

(new LocalDate()).plusDays(5);

om bijvoorbeeld 5 dagen vanaf vandaag te geven.

EDIT: Mijn huidigeadvies zou zijn om nu de Java 8 datum/tijd-api


Antwoord 6, autoriteit 11%

Eenvoudig, zonder enige andere API:

8 dagen toevoegen:

Date today=new Date();
long ltime=today.getTime()+8*24*60*60*1000;
Date today8=new Date(ltime);

Other episodes