I have an epoch second and a zoneId,by method1.It can be convert to LocalDateTime with system default zoneId,but I don't find the way to convert epoch second to LocalDateTime by method2,because there is no ZoneOffset.systemDefault
.I think it's obscure.
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}
val epochSecond = System.currentTimeMillis() / 1000
LocalDateTime.ofInstant(Instant.ofEpochSecond(epochSecond), ZoneId.systemDefault())//method1
LocalDateTime.ofEpochSecond(epochSecond, 0, ZoneOffset.MAX)//method2
As the documentation says, "This is primarily intended for low-level conversions rather than general application usage."
Going via Instant
makes perfect sense to me - your epoch second is effectively a different representation of an Instant
, so convert to an Instant
and then convert that into a particular time zone.
See more on this question at Stackoverflow