Converter Date para LocalDate ou LocalDateTime do Java 8
Veja como converter um Objeto do tipo Date do Java para LocalDate ou LocalDateTime do Java 8
Última atualização em: | 20179 Visualizações
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á oLocalDateTime
trabalha com datas e horas.
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.