Aggiungi un giorno a una data in Java

Asad Riaz 6 aprile 2021 30 marzo 2021
  1. Metodo plusDays() per aggiungere un giorno a una data in Java
  2. Metodo Calendar per aggiungere un giorno a una data in Java
  3. Aggiungi Millisecondi per aggiungere un giorno a una data in Java
  4. Classe Instant per aggiungere un giorno a una data in Java
Aggiungi un giorno a una data in Java

In questo tutorial impareremo come aggiungere giorni a una data in Java. Può essere fatto usando vari approcci come il metodo plusDays, il metodo della classe Calendar, l’aggiunta di millisecondi a un oggetto Date e il metodo Instant class. Se stai usando Java 1.8 o superiore, si consiglia l’approccio plusDays.

Metodo plusDays() per aggiungere un giorno a una data in Java

In Java 1.8 in avanti le nuove classi java.time cioè LocalDate, LocalDateTime hanno metodi plusDays e minusDays per aggiungere e sottrarre unità di tempo da qualsiasi istanza di tempo.

Codici di esempio:

// java 1.8
package simpletesting;
import java.time.LocalDateTime;

public class SimpleTesting {
    public static void main(String[] args) {
        LocalDateTime today = LocalDateTime.now();     //Today
        LocalDateTime tomorrow = today.plusDays(1);     //Plus 1 day
        LocalDateTime yesterday = today.minusDays(1);   //Minus 1 day
        System.out.println("Today:     "+today);          
        System.out.println("Tomorrow:  "+tomorrow);      
        System.out.println("Yesterday: "+yesterday);          
    }
}    

Produzione:

Today:     2020-03-22T19:01:00.728
Tomorrow:  2020-03-23T19:01:00.728
Yesterday: 2020-03-21T19:01:00.728

Metodo Calendar per aggiungere un giorno a una data in Java

Possiamo usare la classe Calendar per aggiungere un giorno a una Data in Java. Può essere fatto semplicemente aggiungendo un giorno all’istanza della classe Calendar:

// java 1.8
package simpletesting;
import java.util.Calendar;
import java.util.Date;

public class SimpleTesting {
    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    "+dt);
        Calendar c = Calendar.getInstance();
        c.setTime(dt);
        c.add(Calendar.DATE, 1);
        dt = c.getTime();
        System.out.println("Tomorrow: "+dt);
    }
}    

Produzione:

Today:    Sun Mar 22 19:07:48 PKT 2020
Tomorrow: Mon Mar 23 19:07:48 PKT 2020

Aggiungi Millisecondi per aggiungere un giorno a una data in Java

Date ha un costruttore che utilizza i millisecondi. Il metodo getTime() ci fornisce quel valore. Quindi aggiungendo i millisecondi per un giorno si aggiungerà un giorno a Date.

Codice:

// java 1.8
package simpletesting;
import java.util.Date;

public class SimpleTesting {

    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    " + dt);
        Date tomorrow = new Date(dt.getTime() + (1000 * 60 * 60 * 24));
        System.out.println("Tomorrow: " + tomorrow);
    }
}

Produzione:

Today:    Sun Mar 22 19:15:27 PKT 2020
Tomorrow: Mon Mar 23 19:15:27 PKT 2020

Stai attento; se utilizziamo un fuso orario del calendario con l’ora legale, potrebbe non passare al giorno successivo.

Classe Instant per aggiungere un giorno a una data in Java

La classe Instant è quasi equivalente a Date. Instant si risolve in nanosecondi. Il metodo instant.plus aggiunge i giorni indicati a Date.

Codici di esempio:

// java 1.8
package simpletesting;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Date;

public class SimpleTesting {
    public static void main(String[] args) {
        Date dt = new Date();
        System.out.println("Today:    " + dt);
        Instant instant = dt.toInstant();
        Instant nextDay = instant.plus(1, ChronoUnit.DAYS);
        System.out.println("Tomorrow: " + nextDay);
    }
}

Produzione:

Today:    Sun Mar 22 19:19:58 PKT 2020
Tomorrow: 2020-03-23T14:19:58.072Z

Articolo correlato - Java DateTime