Как разыграть Long в Int в Scala? - PullRequest
       29

Как разыграть Long в Int в Scala?

33 голосов
/ 16 октября 2011

Я хотел бы использовать следующую функцию для преобразования из Joda Time в Unix timestamp:


def toUnixTimeStamp(dt : DateTime) : Int = {
  val millis = dt.getMillis
  val seconds = if(millis % 1000 == 0) millis / 1000
    else { throw new IllegalArgumentException ("Too precise timestamp") }

  if (seconds > 2147483647) {
    throw new IllegalArgumentException ("Timestamp out of range")
  }

  seconds
}

Ожидаемые значения времени никогда не ожидаются с точностью до миллисекунды, они с точностью до секундыUTC по контракту и подлежит дальнейшему хранению (в БД MySQL) как Int, стандартные метки времени Unix являются стандартом нашей компании для записей времени.Но Joda Time предоставляет только getMillis, а не getSeconds, поэтому мне нужно получить длинную метку времени с точностью до миллисекунды и разделить ее на 1000, чтобы получить стандартную метку времени Unix.

И я застрял, делая Scala для создания IntДлинного значения.Как сделать такой бросок?

1 Ответ

62 голосов
/ 16 октября 2011

Используйте метод .toInt для Long, т.е. seconds.toInt

...