2011-07-13 14 views
6

tengo una fecha String newDate = "31.05.2001"Incremento de la cadena de fecha 1 Día

, que tengo que incrementará en 1 día.

He probado el siguiente código:

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

Pero con este código, sólo es la gestión de añadir la salida de DIA es decir 31.05.2001 01.05.2001 será mantener el mes y el año sin cambios! Por favor, ayúdame con esto.

También he intentado

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

Err, 'Calendar.add()' debería funcionar. ¿Estás seguro de tus entradas y salidas? – Henning

+2

Es por eso que las cuerdas no son buenas, el fregadero de la cocina –

+0

Probé el código - se comporta como se describe ... ¿¡Qué raro !? –

Respuesta

12

Debe utilizar new SimpleDateFormat("dd.MM.yyyy");

'mm' significa minutos, 'MM' es meses.

+1

+1 Ah! Obviamente. Buen descubrimiento. – Henning

+0

¡Me di cuenta de eso también! muchas gracias Fortega! :) – Alpesh003

2

Su error está en el formato de fecha. Debe usar MM (mes) en lugar de mm (minutos).

Cambie SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy"); a SimpleDateFormat sdf = new SimpleDateFormat ("dd.MM.aaaa");

y disfruta.

2

prueba esto !!!!

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())); 
3

Sería más fácil para que usted pueda hacer en un objeto java Date y utilizar DateUtils de Apache en él durante varias operaciones. Compruebe esto http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/time/DateUtils.html. Es útil especialmente cuando tiene que usarlo en varios lugares de su proyecto y no quiere escribir una cantidad ridícula de líneas para esto cada vez.

La API dice:

AddDays (fecha fecha, la cantidad int): añade un número de días a una fecha devolver un nuevo objeto.

Tenga en cuenta que devuelve un nuevo objeto Date y no realiza cambios en el anterior.