Come aggiungo x giorni a una data in Java?Aggiunta di giorni a una data in Java
Ad esempio, la data è (gg/mm/aaaa) = 01/01/2012
Aggiunta 5 giorni, l'uscita dovrebbe essere 06/01/2012
.
Come aggiungo x giorni a una data in Java?Aggiunta di giorni a una data in Java
Ad esempio, la data è (gg/mm/aaaa) = 01/01/2012
Aggiunta 5 giorni, l'uscita dovrebbe essere 06/01/2012
.
Se stai usando Joda-Time (e ci sono un sacco di buoni motivi per - una semplice, API intuitiva e filo-sicurezza), allora si può fare questo banalmente:
(new LocalDate()).plusDays(5);
che invia 5 giorni a partire da oggi , per esempio.
Come posso ottenere la data prima di 10 giorni dalla data corrente usando joda nel formato aaaa-mm-gg – vishal
Controlla i DateTimeFormatters specifici per Joda –
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);
Puoi giorni anche Sottrarre come 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);
perché impostaTempo su new Date(), tuttavia Calendar.getInstance(). GetTime() restituisce lo stesso ? – Jayanth
Ecco qualche semplice codice per dare uscita come currentdate
+ D days
= some 'x' date
(futura data):
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 5);
System.out.println(dateFormat.format(c.getTime()));
È un semplice codice per fornire l'output come data corrente + D giorni = qualche data 'x' (data futura) .. – user3136058
Con Java 8 Date and Time API è possibile utilizzare la classe LocalDate
.
LocalDate.now().plusDays(nrOfDays)
Vedere Oracle Tutorial.
Risposta corretta. Suggerirei anche di passare un fuso orario (['ZoneId'] (http://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html)) al [' now'] (http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#now-java.time.ZoneId-) metodo piuttosto che fare affidamento implicitamente sul [fuso orario predefinito attuale] della JVM (http://docs.oracle.com/javase/8/docs/api/java/time/ZoneId.html#systemDefault--). Questo valore predefinito può cambiare in qualsiasi momento * durante il runtime *! Meglio specificare il fuso orario desiderato/previsto. –
Questo non funziona come scritto. Modifica 'plus (nrOfDays)' a 'piùDays (nrOfDays) 'o il più ingombrante' più (nrOfDays, ChronoUnit.DAYS) ', che richiederebbe l'importazione di' java.time.temporal.ChronoUnit' oltre a 'java.time .LocalDate'. – MarredCheese
Grazie a @MarredCheese, ho modificato la risposta di conseguenza. –
semplice, senza alcun altro API:
Per aggiungere 8 giorni:
Date today=new Date();
long ltime=today.getTime()+8*24*60*60*1000;
Date today8=new Date(ltime);
Questo codice non tiene conto del fatto che i giorni non sono sempre lunghi 24 ore. Tecnicamente, questo aggiunge 192 ore invece di 8 giorni. Può essere corretto in base a ciò che la situazione definisce come "giorni". –
'public static Date addRemoveDays (Date d, int days) { long ltime = d.getTime() + giorni * 24 * 60 * 60 * 1000; return new Date (ltime); } ... data danes = new Date(); //28.4.2016 Data tooOld = MyUtil.addRemoveDays (dan, -80); //18.5.2016 ERRORE ??? ' – MatejC
Problema con l'utilizzo di codice come questo è che puoi facilmente overflow int e quindi andare negativo: 90 giorni * 24 * 60 * 60 * 1000 = (int) -813934592 Questo ti porta _backwards_. –
Non ci sono più duplicati per questa domanda di carattere generale 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
Cerca date timeout Joda-Time per molti esempi. –
Perché non approvare nessuno? – bharatpatel