String dt="2014-04-25";
我想在这个日期添加n天...我已经搜索了很多但是无法获得任何好的工作代码....
我已经尝试了SimpleDateFormat
但是它没有用,所以请帮我解释一下代码......
答案 0 :(得分:0)
您可以使用joda时间库
来完成import org.joda.time;
String dt="2014-04-25";
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
DateTime dateTime = formatter.parseDateTime(dt);
DateTime oneDayPlus = dateTime.plusDays(1);
String oneDayPlusString = oneDayPlus.toString(formatter); // This is "2014-04-26"
oneDayPlus会为您提供所需的对象。
同样,这需要您使用额外的jar文件,因此如果您可以引入添加新库,请使用它。
答案 1 :(得分:0)
记住String != Date
他们没有任何共同之处(好吧,排除字符串可以表示日期确定的事实?)
如果您想为String添加天数,可以将其转换为Date并使用普通API为其添加天数。
在这里我们使用SimpleDateFormat
用于从模板字符串创建日期
String dt = "2014-04-25";
// yyyy-MM-dd
// year-month-day
DateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
try
{
Date date = format.parse(dt);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, 5);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
}
catch (ParseException e)
{
System.out.println("Wrong date");
}
yyyy-MM-dd
是我们的模式,它与我们的字符串相对应。
format.parse(dt);
尝试从我们传递的字符串创建一个Date
对象,如果失败则抛出ParseException
。 (如果你想检查它是否有效只是尝试传递一个无效的字符串)
然后我们创建一个新的Calendar实例,并将日期设置为我们创建的日期(这与我们的字符串中的日期相对应)并添加五天到我们的日期..我们走了。现在日历将引用30-04-2014
。
您可以替换
calendar.add(Calendar.DAY_OF_MONTH, 5);
与
calendar.add(Calendar.DAY_OF_MONTH, n);
如果您愿意,它会添加n
天。