Java 8: How to create a ZonedDateTime from an Epoch value?

rabejens picture rabejens · Mar 2, 2015 · Viewed 35.5k times · Source

Java 8's LocalDateTime has an ofEpochSecond method. Unfortunately, there is no such method in the ZonedDateTime. Now, I have an Epoch value and an explicit ZoneId given. How do I get a ZonedDateTime out of these?

Answer

Prisoner picture Prisoner · Mar 2, 2015

You should be able to do this via the Instant class, which can represent a moment given the epoch time. If you have epoch seconds, you might create something via something like

Instant i = Instant.ofEpochSecond(t);
ZonedDateTime z = ZonedDateTime.ofInstant(i, zoneId);