Quick Code: Converter Date para LocalDate ou LocalDateTime do Java 8

Postado em por Wolmir Cezer Garbin em Java | 434 Visualizações
Última atualização em:

Veja como converter um Objeto do tipo Date do Java para LocalDate ou LocalDateTime do Java 8

Date to LocalDate

O código a seguir mostra como é possível converter um objeto Date do Java para um Objeto LocalDate do Java 8 e depois fazer a conversão para Date novamente. Veja:

Date date = new Date();

LocalDate localDate = date.toInstant().atZone( ZoneId.systemDefault() ).toLocalDate();

System.out.println( localDate );

Date saida = Date.from( localDate.atStartOfDay( ZoneId.systemDefault() ).toInstant() );

System.out.println( saida );

Veja a saída no console:

2018-03-13
Tue Mar 13 00:00:00 BRT 2018

Date to LocalDateTime

O código a seguir mostra como é possível converter um objeto Date do Java para um Objeto LocalDateTime do Java 8 e depois fazer a conversão para Date novamente. Veja:

Date date = new Date();

LocalDateTime localDateTime = date.toInstant().atZone( ZoneId.systemDefault() ).toLocalDateTime();

System.out.println( localDateTime );

Date saida02 = Date.from( localDateTime.atZone( ZoneId.systemDefault() ).toInstant() );

System.out.println( saida02 );

Veja a saída no console:

2018-03-13T17:09:07.713
Tue Mar 13 17:09:07 BRT 2018

Veja a classe completa usando conversões entre Date/LocalDate e Date/LocalDateTime:

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class SampleTest {

    public static void main(String[] args) {
        Date date = new Date();

        LocalDate localDate = date.toInstant().atZone( ZoneId.systemDefault() ).toLocalDate();

        System.out.println( localDate );

        Date saida = Date.from( localDate.atStartOfDay( ZoneId.systemDefault() ).toInstant() );

        System.out.println( saida );

        LocalDateTime localDateTime = date.toInstant().atZone( ZoneId.systemDefault() ).toLocalDateTime();

        System.out.println( localDateTime );

        Date saida02 = Date.from( localDateTime.atZone( ZoneId.systemDefault() ).toInstant() );

        System.out.println( saida02 );
    }
}

Note que o LocalDate trabalha apenas com a data, não considerando horas e minutos, já o LocalDateTime trabalha com datas e horas.

Qualquer dúvida deixe nos comentários.


Tem algo para vender? AnuncieOn.com

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

Tem algo para vender? AnuncieOn.com

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores

Code Conference

Esta é uma conferência de código realizada na cidade de Pato Branco para dissiminar tendências e informações sobre programação e novas tecnológias

Veja mais sobre o Code Conference

Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar