Como adicionar um dia a uma data em Java

Asad Riaz 30 janeiro 2023 1 novembro 2020
  1. Método para adicionar um dia a uma data em Java
  2. Calendar Método para adicionar um dia a uma data em Java
  3. Adicionar Milissegundos para adicionar um dia a uma data em Java
  4. Classe Instant para adicionar um dia a uma data em Java
Como adicionar um dia a uma data em Java

Neste tutorial, aprenderemos como adicionar dias a uma Date em Java. Isto pode ser feito utilizando várias abordagens como o método plusDays, o método classe Calendar, adicionando milissegundos a um objeto Date, e o método Instant class. Se você estiver utilizando Java 1.8 ou superior, então a abordagem plusDays é recomendada.

Método para adicionar um dia a uma data em Java

Em Java 1.8 em diante, novas classes de java.time, ou seja, LocalDate, LocalDateTime têm métodos plusDays e minusDays para adicionar e subtrair unidade de tempo de qualquer instância de tempo.

Códigos de exemplo:

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

Resultado:

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

Calendar Método para adicionar um dia a uma data em Java

Podemos utilizar a classe Calendar para adicionar um dia a uma Date em Java. Isso pode ser feito simplesmente adicionando um dia à 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);
    }
}    

Resultado:

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

Adicionar Milissegundos para adicionar um dia a uma data em Java

A Date tem um construtor utilizando milissegundos. O método getTime() nos dá esse valor. Portanto, somar os milissegundos por um dia adicionará um dia à Date.

Código:

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

Resultado:

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

Tenha cuidado; se utilizarmos um Calendário Fuso Horário com economia de luz do dia, ele não poderá saltar para o dia seguinte.

Classe Instant para adicionar um dia a uma data em Java

A classe Instant está próxima de ser equivalente a Date. A classe Instant resolve a nanossegundos. O método instant.plus acrescenta os dias dados a Date.

Códigos de exemplo:

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

Resultado:

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

Artigo relacionado - Java DateTime