特にScalaに限った話ではなく、Javaでも同様です。自分用のメモです。
Unixのtimestampが与えられたとき、それをjava.time.LocalDateTime
に変換するには、
main.scala
import java.time._
def fromUnixMilliSecond(ts: Long): LocalDateTime =
LocalDateTime.ofInstant(Instant.ofEpochMilli(ts), ZoneOffset.UTC)
という感じに書けます。
ミリ秒ではなく、秒の場合は
main.scala
import java.time._
def fromUnixSecond(ts: Long): LocalDateTime =
LocalDateTime.ofInstant(Instant.ofEpochSecond(ts), ZoneOffset.UTC)
と書けます。
Instant
は元のtimestampの単位が、秒かミリ秒かによって呼ぶメソッドが異なるので、分かりやすい感じがします。
参考