将日期字符串增加1天

时间:2011-07-13 06:40:28

标签: java

我有一个约会String newDate = "31.05.2001"

我必须增加1天。

我尝试了以下代码:

String dateToIncr = "31.12.2001";
String dt="";
SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy"); 
Calendar c = Calendar.getInstance();
try {
    c.setTime(sdf.parse(dateToIncr));
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} 
c.add(Calendar.DAY_OF_MONTH, 1);  // number of days to add
dt = sdf.format(c.getTime());
System.out.println("final date now : " + dt);

但是使用这个代码,它只是设法添加DAY,即31.05.2001的输出将是1.05.2001,保持月份和年份不变!请帮帮我。

我也试过

c.roll(Calendar.DATE, 1);  // number of days to add

4 个答案:

答案 0 :(得分:12)

您应该使用new SimpleDateFormat("dd.MM.yyyy");

'mm'表示分钟,'MM'表示月份。

答案 1 :(得分:3)

将它变成java Date对象并使用Apache上的DateUtils进行各种操作会更简单。检查此http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/time/DateUtils.html。它非常方便,特别是当你必须在你的项目中使用多个位置时,并且不希望每次都为此编写荒谬的行数。

API说:

addDays(日期,日期金额):在返回新对象的日期中添加若干天。

请注意,它会返回一个新的Date对象,并且不会对前一个对象进行更改。

答案 2 :(得分:2)

你的错误是日期格式。您应该使用MM(月)而不是mm(分钟)。

SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy");更改为SimpleDateFormat sdf = new SimpleDateFormat(“dd.MM.yyyy”);

并享受。

答案 3 :(得分:2)

试一试!!!!

String DATE_FORMAT = "dd-MM-yyyy";
    String date_string = "20-12-2001";
    java.text.SimpleDateFormat sdf =
    new java.text.SimpleDateFormat(DATE_FORMAT);
    Date date = (Date)sdf.parse(date_string);
    Calendar c1 = Calendar.getInstance();
    c1.setTime(date); 
    System.out.println("Date is : " + sdf.format(c1.getTime()));
    c1.add(Calendar.MONTH,1);
    System.out.println("Date + 1 month is : " + sdf.format(c1.getTime()));