在Java里如何给一个日期增加一天
我正在使用如下格式的日期: yyyy-mm-dd.
我怎么样可以给一个日期增加一天?
回答一
这样应该可以解决问题
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和c#比确实像落后了8球。这个工具方法展示了怎么样在Java SE 6 使用 Calendar.add方法(可能是唯一简单的方法了)
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 daysreturn cal.getTime();}
}
如果要添加一天,像问题中的那样,就如同下面那样调用它:
String sourceDate = "2012-02-29";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = format.parse(sourceDate);
myDate = DateUtil.addDays(myDate, 1);
回答三
java.time
在Java8以后的版本,java.time package 使得这个更加自动化
假设字符串输入输出
import java.time.LocalDate;public class DateIncrementer {static public String addOneDay(String date) {return LocalDate.parse(date).plusDays(1).toString();}
}
回答四
SimpleDateFormat dateFormat = new SimpleDateFormat( "yyyy-MM-dd" );
Calendar cal = Calendar.getInstance();
cal.setTime( dateFormat.parse( inputString ) );
cal.add( Calendar.DATE, 1 );
回答五
Take a look at Joda-Time (https://www.joda.org/joda-time/).DateTimeFormatter parser = ISODateTimeFormat.date();DateTime date = parser.parseDateTime(dateString);String nextDay = parser.print(date.plusDays(1));
回答六
Java添加了一个新的API去处理dates和times
在Java 8 里面你可以使用如下的代码:
// parse date from yyyy-mm-dd pattern
LocalDate januaryFirst = LocalDate.parse("2014-01-01");// add one day
LocalDate januarySecond = januaryFirst.plusDays(1);
回答七
你可以使用简单的 java.util 库
Calendar cal = Calendar.getInstance();
cal.setTime(yourDate);
cal.add(Calendar.DATE, 1);
yourDate = cal.getTime();
文章翻译自Stack Overflow:https://stackoverflow.com/questions/428918/how-can-i-increment-a-date-by-one-day-in-java