Подтвердить что ты не робот

Как передать Long в Int в Scala?

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


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 из длинного значения. Как сделать такой подбор?

4b9b3361

Ответ 1

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