我想在一个特定的日期上加上一天。我该怎么做呢?
Date dt = new Date();
现在我想在这个日期上加一天。
我想在一个特定的日期上加上一天。我该怎么做呢?
Date dt = new Date();
现在我想在这个日期上加一天。
当前回答
你可以像这样尝试java.util.Date库-
int no_of_day_to_add = 1;
Date today = new Date();
Date tomorrow = new Date( today.getYear(), today.getMonth(), today.getDate() + no_of_day_to_add );
根据需要更改no_of_day_to_add的值。
我设置了no_of_day_to_add的值为1,因为你只想添加一天。
更多信息可以在本文档中找到。
其他回答
在非常特殊的情况下,如果你要求做自己的约会课,可能是你的计算机编程教授;这个方法会做得很好。
public void addOneDay(){
int [] months = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
day++;
if (day> months[month-1]){
month++;
day = 1;
if (month > 12){
year++;
month = 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
最佳用法:
long currenTime = System.currentTimeMillis();
long oneHourLater = currentTime + TimeUnit.HOURS.toMillis(1l);
类似地,你可以添加月、日、分钟等
给定一个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);
我更喜欢用joda来计算日期和时间,因为它可读性更好:
Date tomorrow = now().plusDays(1).toDate();
Or
endOfDay(now().plus(days(1))).toDate()
startOfDay(now().plus(days(1))).toDate()