我使用的日期格式为:yyyy-mm-dd。

如何将此日期增加一天?


当前回答

这很简单,试着用简单的话来解释。 今天的日期如下所示

Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());// print today's date
calendar.add(Calendar.DATE, 1);

现在把这个日期提前一天。添加参数为(常量,值)的方法。这里的constant可以是DATE, hours, min, sec等,value是常量的值。比如一天,前面的常数是日历。DATE和它的值是1,因为我们想要提前一天的值。

System.out.println(calendar.getTime());//打印明天的修改日期

谢谢

其他回答

Date today = new Date();               
SimpleDateFormat formattedDate = new SimpleDateFormat("yyyyMMdd");            
Calendar c = Calendar.getInstance();        
c.add(Calendar.DATE, 1);  // number of days to add      
String tomorrow = (String)(formattedDate.format(c.getTime()));
System.out.println("Tomorrows date is " + tomorrow);

这将给出明天的日期。C.add(…)参数可以从1更改为另一个数字,以获得适当的增量。

long timeadj = 24*60*60*1000;
Date newDate = new Date (oldDate.getTime ()+timeadj);

这将从oldDate中获取自epoch以来的毫秒数,并添加1天的毫秒数,然后使用Date()公共构造函数使用新值创建一个日期。这种方法允许你增加1天,或任何小时/分钟的数量,而不仅仅是一整天。

如果您想添加一个时间单位,并且希望其他字段也增加,则可以安全地使用add方法。请看下面的例子:

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.set(1970,Calendar.DECEMBER,31);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, 1);
System.out.println(simpleDateFormat1.format(cal.getTime()));
cal.add(Calendar.DATE, -1);
System.out.println(simpleDateFormat1.format(cal.getTime()));

将打印:

1970-12-31
1971-01-01
1970-12-31

像这样的东西应该可以达到目的:

String dt = "2008-01-01";  // Start date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(sdf.parse(dt));
c.add(Calendar.DATE, 1);  // number of days to add
dt = sdf.format(c.getTime());  // dt is now the new date

在Java 8中简单的方法是:

Date.from(Instant.now().plusSeconds(SECONDS_PER_DAY))