用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小时之前…但您需要考虑时区等。您可能希望使用LocalDateTime
或Instant
而不是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