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

如何将此日期增加一天?


当前回答

自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));

其他回答

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

如果你使用的是Java 8, Java .time. localdate和Java .time.format. datetimeformatter可以让这个工作变得非常简单。

public String nextDate(String date){
      LocalDate parsedDate = LocalDate.parse(date);
      LocalDate addedDate = parsedDate.plusDays(1);
      DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-mm-dd");
      return addedDate.format(formatter); 
}

请注意这一行增加了24小时:

d1.getTime() + 1 * 24 * 60 * 60 * 1000

但是这条线增加了一天

cal.add( Calendar.DATE, 1 );

在夏令时改变的日子里(25或23小时),你会得到不同的结果!

如果您想添加一个时间单位,并且希望其他字段也增加,则可以安全地使用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

其实很简单。 一天包含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