2011-04-27 3 views
7

Je souhaite obtenir le jour précédent (24 heures) à partir de l'heure actuelle.Décrémenter une date en Java

par exemple, si le temps actuel est Date currentTime = new Date();

2011-04-25 12: 15: 31: 562 GMT

Comment déterminer le temps à savoir

2011-04- 24 12: 15: 31: 562 GMT

Répondre

25

Vous pouvez le faire en utilisant Calendar class:

Calendar cal = Calendar.getInstance(); 
cal.setTime (date); // convert your date to Calendar object 
int daysToDecrement = -1; 
cal.add(Calendar.DATE, daysToDecrement); 
date = cal.getTime(); // again get back your date object 
10

Je suggère yo vous utilisez Joda Time pour commencer, qui est un beaucoup API plus agréable. Ensuite, vous pouvez utiliser:

DateTime yesterday = new DateTime().minusDays(1); 

Notez que « ce temps hier » est pas toujours 24 heures il y a bien ... vous devez penser sur les fuseaux horaires, etc. Vous pouvez utiliser LocalDateTime ou Instant au lieu de DateTime .

+0

Un téléchargement rapide nouveau lien pour Joda -Time bibliothèque JAR externe: [URL] (https://github.com/JodaOrg/joda-time/releases) –

1

24 heures et 1 jour ne sont pas la même chose. Mais vous faites à la fois en utilisant le calendrier:

Calendar c = Calendar.getInstance(); 
c.setTime(new Date()); 
c.add(Calendar.DATE, -1); 
Date d = c.getTime(); 

Si vous allez 24 heures en arrière, utilisez Calendar.HOUR_OF_DAY

1

s'il vous plaît checkout cette ici: Java Date vs Calendar

Calendar cal=Calendar.getInstance(); 
cal.setTime(date); //not sure if date.getTime() is needed here 
cal.add(Calendar.DAY_OF_MONTH, -1); 
Date newDate = cal.getTime();