How can I create a Java 8 LocalDate from a long Epoch time in Milliseconds? How can I create a Java 8 LocalDate from a long Epoch time in Milliseconds? java java

How can I create a Java 8 LocalDate from a long Epoch time in Milliseconds?


If you have the milliseconds since the Epoch and want to convert them to a local date using the current local timezone, you can use

LocalDate date =    Instant.ofEpochMilli(longValue).atZone(ZoneId.systemDefault()).toLocalDate();

but keep in mind that even the system’s default time zone may change, thus the same long value may produce different result in subsequent runs, even on the same machine.

Further, keep in mind that LocalDate, unlike java.util.Date, really represents a date, not a date and time.

Otherwise, you may use a LocalDateTime:

LocalDateTime date =    LocalDateTime.ofInstant(Instant.ofEpochMilli(longValue), ZoneId.systemDefault());


You can start with Instant.ofEpochMilli(long):

LocalDate date =  Instant.ofEpochMilli(startDateLong)  .atZone(ZoneId.systemDefault())  .toLocalDate();


I think I have a better answer.

new Timestamp(longEpochTime).toLocalDateTime();