将时间戳解析为LocalDateTime Scala

时间:2017-12-14 15:22:36

标签: scala datetime date-formatting

我的用户案例类有一个数据集,其中包含出生日期字段。我想将这些数据放入我的数据库,但是,日期以日期戳的形式表示,所以我不知道如何使用LocalDateTime解析它。 以下是我拥有的日期戳的示例:

-631065600
885254400
48124800
-1007596800

我尝试做这样的事情:

val formatter = DateTimeFormatter.ofPattern("n")

  val users = List(
    models.User(1, "sosodachenheonne@list.me", "Роман", "Терленчан", "m", LocalDateTime.parse("885254400", formatter)),
    models.User(2, "vyhihhimrusedac@list.me", "Артём", "Пенленный", "m", LocalDateTime.parse("48124800", formatter)),
    models.User(3, "istoordadanaihdut@gmail.com", "Борислав", "Фетленвич", "m", LocalDateTime.parse("-1007596800", formatter))
  )

但我有一个例外:

java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: {NanoOfSecond=885254400},ISO of type java.time.format.Parsed

2 个答案:

答案 0 :(得分:6)

您可以将变量从时间戳转换为LocalDateTime,如下所示:LocalDateTime.ofInstant(Instant.ofEpochMilli(885254400), ZoneOffset.UTC)

答案 1 :(得分:0)

您可以使用以下代码:

  val fmt = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy")
  val date = new Date(-631065600)
  println(LocalDateTime.parse(date.toString, fmt))