123 votes

Comment soustraire X jour à partir d'un objet Date en Java?

Je veux faire quelque chose comme:

Date date=new Date(); //current date
date=date-300;//substact 300 days from current date and I want to use this "date"

Comment faire?

244voto

Jigar Joshi Points 116533

Utiliser Calendars' add() méthode

Calendar cal = Calendar.getInstance();
cal.setTime(dateInstance);
cal.add(Calendar.DATE, -30);
Date dateBefore30Days = cal.getTime();

30voto

Tim Points 61

Je voudrais vraiment vous recommander d'utiliser DateTime bibliothèque trouvé ici: http://joda-time.sourceforge.net/

C'est l'un de mes premiers dépendances-je ajouter à presque tous seul Projet Java-je construire.

Si vous avez un code existant nécessitant des Dates ou des Calendriers, vous pouvez convertir de DateTimes.

Donc en soustrayant de 300 jours serait aussi facile que de:

Date date = new Date(); // Or where ever you get it from
Date daysAgo = new DateTime(date).minusDays(300).toDate();

7voto

waldyr.ar Points 4010

Comme vous pouvez le voir ICI, il y a beaucoup de manipulation que vous pouvez faire. Voici un exemple montrant ce que vous pourriez faire!

DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();

//Add one day to current date.
cal.add(Calendar.DATE, 1);
System.out.println(dateFormat.format(cal.getTime()));

//Substract one day to current date.
cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(dateFormat.format(cal.getTime()));

/* Can be Calendar.DATE or
*  Calendar.MONTH, Calendar.YEAR, Calendar.HOUR, Calendar.SECOND
*/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X