¿Cómo agrego x días a una fecha en Java?Agregar días a una fecha en Java
Por ejemplo, mi fecha es (dd/mm/aaaa) = 01/01/2012
la adición de 5 días, la salida debe ser 06/01/2012
.
¿Cómo agrego x días a una fecha en Java?Agregar días a una fecha en Java
Por ejemplo, mi fecha es (dd/mm/aaaa) = 01/01/2012
la adición de 5 días, la salida debe ser 06/01/2012
.
Si está utilizando Joda-Time (y hay un montón de buenas razones para - una API simple, intuitiva e hilo de seguridad) entonces usted puede hacer esto trivialmente:
(new LocalDate()).plusDays(5);
para dar 5 días a partir de hoy , por ejemplo.
¿Cómo puedo obtener una fecha anterior a 10 días a partir de la fecha actual usando joda en el formato aaa-mm-dd – vishal
? Consulte la fecha específica de Joda DateTimeFormatters –
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.YEAR, 2012);
cal.add(Calendar.DAY_OF_MONTH, 5);
Puede también Restar días como Calendar.add(Calendar.DAY_OF_MONTH, -5);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(new Date()); // Now use today date.
c.add(Calendar.DATE, 5); // Adding 5 days
String output = sdf.format(c.getTime());
System.out.println(output);
por qué setTime a la nueva fecha(), sin embargo Calendar.getInstance(). GetTime() produce el mismo ? – Jayanth
Aquí hay un código sencillo para dar salida como currentdate
+ D days
= some 'x' date
(fecha futura):
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 5);
System.out.println(dateFormat.format(c.getTime()));
Es un código simple para dar salida como currentdate + D days = alguna 'x' date (fecha futura) .. – user3136058
Con Java 8 Date and Time API puede usar la clase LocalDate
.
LocalDate.now().plusDays(nrOfDays)
Ver el Oracle Tutorial.
Respuesta correcta. También sugeriría pasar una zona horaria (['ZoneId'] (http://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html)) a [' now'] (http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#now-java.time.ZoneId-) método en lugar de confiar implícitamente en la [zona horaria predeterminada actual] de la JVM (http://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#systemDefault--). ¡Ese valor predeterminado puede cambiar en cualquier momento * durante el tiempo de ejecución *! Es mejor especificar el huso horario deseado/esperado. –
Esto no funciona como está escrito. Cambie 'plus (nrOfDays)' a 'plusDays (nrOfDays)' o el más engorroso 'plus (nrOfDays, ChronoUnit.DAYS)', lo que requeriría importar 'java.time.temporal.ChronoUnit' además de' java.time .LocalDate'. – MarredCheese
Gracias @MarredCheese, modifiqué la respuesta en consecuencia. –
simple, sin ninguna otra API:
Para añadir 8 días:
Date today=new Date();
long ltime=today.getTime()+8*24*60*60*1000;
Date today8=new Date(ltime);
Este código no tiene en cuenta el hecho de que los días no siempre son de 24 horas. Técnicamente, esto agrega 192 horas en lugar de 8 días. Puede ser correcto dependiendo de lo que la situación define como "días". –
'public static Date addRemoveDays (Date d, int days) { long ltime = d.getTime() + días * 24 * 60 * 60 * 1000; return new Date (ltime); } ... Date danes = new Date(); //28.4.2016 Fecha tooOld = MyUtil.addRemoveDays (danes, -80); //18.5.2016 ERROR ??? ' – MatejC
El problema con el uso de este código es que puede desbordar fácilmente int y luego pasar a negativo: 90 días * 24 * 60 * 60 * 1000 = (int) -813934592 Esto lo lleva _backwards_. –
hay más duplicados para esta pregunta general http://stackoverflow.com/questions/2623610/subtracting-days- in-a-calendar-object http://stackoverflow.com/questions/428918/how-can-i-increment-a-date-by-one-day-in-java – AurA
Buscar Joda-Time DateTime plusDays para muchos ejemplos. –
¿Por qué no aprobar uno? – bharatpatel