2011-04-27 68 views
7

我想從當前時間獲得前一天(24小時)。在Java中減少日期

例如,如果當前時間是Date currentTime = new Date();

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

如何確定時間,即

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

回答

25

你可以做,使用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

我會建議你你使用Joda Time開始,這是一個更好的API。然後你可以使用:

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

注意,「昨天這個時候」並不總是24小時之前雖然...你需要考慮時區等,您可能需要使用LocalDateTimeInstant代替DateTime

+0

快速下載鏈接 - 外部JAR庫:[URL](https://github.com/JodaOrg/joda-time/releases) – 2017-11-13 23:35:06

1

24小時和1全天不一樣的東西。但是,你都使用日曆:

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

如果要追溯至24小時,你會用Calendar.HOUR_OF_DAY

1

請結帳此這裏:喬達 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();