用Java减少日期

我想从当前时间开始前一天(24小时)。

例如,如果当前时间是Date currentTime = new Date();

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

如何确定时间即

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

你可以使用Calendar类来做到这一点:

 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 

我建议你使用Joda Time开始,这是一个更好的API。 然后你可以使用:

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

请注意,“昨天这个时间”并不总是在24小时之前…但您需要考虑时区等。您可能希望使用LocalDateTimeInstant而不是DateTime

请在这里查看: 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(); 

24小时和1天不是一回事。 但你使用Calendar做两件事:

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

如果你要回去24小时,你会使用Calendar.HOUR_OF_DAY