The following code snippet demonstrate how to convert java.time.LocalDate
to java.util.Date
and vice versa. In the first part of the code snippet we convert LocalDate
to Date
and back to LocalDate
object. On the second part we convert LocalDateTime
to Date
and back to LocalDateTime
object.
package org.kodejava.datetime;
import java.time.*;
import java.util.Date;
public class LocalDateToDate {
public static void main(String[] args) {
// Convert java.time.LocalDate to java.util.Date and back to
// java.time.LocalDate
LocalDate localDate = LocalDate.now();
System.out.println("LocalDate = " + localDate);
Date date1 = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println("Date = " + date1);
localDate = date1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
System.out.println("LocalDate = " + localDate);
System.out.println();
// Convert java.time.LocalDateTime to java.util.Date and back to
// java.time.LocalDateTime
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("LocalDateTime = " + localDateTime);
Date date2 = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
System.out.println("Date = " + date2);
localDateTime = date2.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println("LocalDateTime = " + localDateTime);
}
}
The result of the code snippet:
LocalDate = 2021-11-20
Date = Sat Nov 20 00:00:00 CST 2021
LocalDate = 2021-11-20
LocalDateTime = 2021-11-20T18:25:05.706380200
Date = Sat Nov 20 18:25:05 CST 2021
LocalDateTime = 2021-11-20T18:25:05.706