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

如何将此日期增加一天?


当前回答

对于Java SE 8或更高版本,您应该使用新的日期/时间API

 int days = 7;       
 LocalDate dateRedeemed = LocalDate.now();
 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/YYYY");

 String newDate = dateRedeemed.plusDays(days).format(formatter);   
 System.out.println(newDate);

如果您需要从java.util.Date转换为java.time。LocalDate,您可以使用此方法。

  public LocalDate asLocalDate(Date date) {
      Instant instant = date.toInstant();
      ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
      return zdt.toLocalDate();
  }

对于Java SE 8之前的版本,您可以使用Joda-Time

Joda-Time提供了Java日期和时间的高质量替代品 类,是Java事实上的标准日期和时间库 在Java SE 8之前

   int days = 7;       
   DateTime dateRedeemed = DateTime.now();
   DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/uuuu");
        
   String newDate = dateRedeemed.plusDays(days).toString(formatter);   
   System.out.println(newDate);

其他回答

其实很简单。 一天包含86400000毫秒。 所以首先你从系统中通过使用System. currenttimemillis()获得当前时间,单位是millis 添加8000000毫秒,并使用日期类生成以毫秒为单位的日期格式。

例子

String Today = new Date(System.currentTimeMillis()).toString();

今天是2019-05-9

String明天=新的日期(System.currentTimeMillis() + 86400000).toString();

明天将是2019-05-10

最新消息。

字符串后天将是2019-05-11

startCalendar.add(Calendar.DATE, 1); //Add 1 Day to the current Calender

构造一个Calendar对象并调用add(Calendar。目前为止,1);

自Java 1.5以来,TimeUnit.DAYS.toMillis(1)对我来说看起来更干净。

SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Date day = dateFormat.parse(string);
// add the day
Date dayAfter = new Date(day.getTime() + TimeUnit.DAYS.toMillis(1));

你可以使用"org.apache.commons.lang3.time"中的这个包:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date myNewDate = DateUtils.addDays(myDate, 4);
 Date yesterday = DateUtils.addDays(myDate, -1);
 String formatedDate = sdf.format(myNewDate);