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

如何将此日期增加一天?


当前回答

我认为最快的一个,永远不会被弃用,它是一个深入核心的

let d=new Date();
d.setTime(d.getTime()+86400000);
console.log(d);

只有一行, 只有两个命令。 它工作在日期类型,不使用日历。

我一直认为最好在代码端使用unix时间,并在准备好显示给用户时显示日期。

要打印日期d,我使用

let format1 = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'numeric', month: '2-digit', day: '2-digit'});
let [{ value: month },,{ value: day },,{ value: year }] = format1.formatToParts(d);

它可以设置月、年和日,但可以扩展到小时、分钟和秒,也可以根据国家国旗在标准表示中使用。

其他回答

看看Joda-Time (https://www.joda.org/joda-time/)。

DateTimeFormatter parser = ISODateTimeFormat.date();

DateTime date = parser.parseDateTime(dateString);

String nextDay = parser.print(date.plusDays(1));
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更改为另一个数字,以获得适当的增量。

你可以使用"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);  

在java 8中,您可以使用java.time. localdate

LocalDate parsedDate = LocalDate.parse("2015-10-30"); //Parse date from String
LocalDate addedDate = parsedDate.plusDays(1);   //Add one to the day field

您可以将其转换为java.util.Date对象,如下所示。

Date date = Date.from(addedDate.atStartOfDay(ZoneId.systemDefault()).toInstant());

您可以将LocalDate格式化为字符串,如下所示。

String str = addedDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));

更新(2021年5月):这是一个非常过时的老Java的答案。对于Java 8及以上版本,请参见https://stackoverflow.com/a/20906602/314283

与c#相比,Java确实远远落后于八球。这个实用程序方法展示了在Java SE 6中使用Calendar的方法。添加方法(可能是唯一简单的方法)。

public class DateUtil
{
    public static Date addDays(Date date, int days)
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DATE, days); //minus number would decrement the days
        return cal.getTime();
    }
}

根据所问的问题,加一天,如下所示:

String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);