我想在一个特定的日期上加上一天。我该怎么做呢?

Date dt = new Date();

现在我想在这个日期上加一天。


当前回答

最佳用法:

      long currenTime = System.currentTimeMillis();
      long oneHourLater = currentTime + TimeUnit.HOURS.toMillis(1l);

类似地,你可以添加月、日、分钟等

其他回答

我更喜欢用joda来计算日期和时间,因为它可读性更好:

Date tomorrow = now().plusDays(1).toDate();

Or

endOfDay(now().plus(days(1))).toDate()
startOfDay(now().plus(days(1))).toDate()

你想在几天后找到日期这个代码尝试..

public Date getToDateAfterDays(Integer day) {
        Date nowdate = new Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(nowdate);
        cal.add(Calendar.DATE, day);
        return cal.getTime();
    }

我将向您展示如何在Java 8中做到这一点。给你:

public class DemoDate {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        System.out.println("Current date: " + today);

        //add 1 day to the current date
        LocalDate date1Day = today.plus(1, ChronoUnit.DAYS);
        System.out.println("Date After 1 day : " + date1Day);
    }
}

输出:

Current date: 2016-08-15
Date After 1 day : 2016-08-16

给定一个Date dt,你有几种可能性:

解决方案1:你可以使用Calendar类:

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

解决方案2:您应该认真考虑使用Joda-Time库,因为Date类存在各种缺点。使用Joda-Time你可以做以下事情:

Date dt = new Date();
DateTime dtOrg = new DateTime(dt);
DateTime dtPlusOne = dtOrg.plusDays(1);

解决方案3:在Java 8中,你还可以使用新的JSR 310 API(它的灵感来自Joda-Time):

Date dt = new Date();
LocalDateTime.from(dt.toInstant()).plusDays(1);

我发现了一个简单的方法,可以向Date对象添加任意时间

Date d = new Date(new Date().getTime() + 86400000)

地点:

86 400 000 ms = 1 Day  : 24*60*60*1000
 3 600 000 ms = 1 Hour :    60*60*1000