如何在Scala中将Long转换为Int?

时间:2011-10-16 05:12:56

标签: scala types casting int long-integer

我想使用以下函数将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,并且将作为Int进一步存储(在MySQL数据库中),标准Unix时间戳是我们公司的时间标准记录。但是Joda Time只提供getMillis而不是getSeconds,所以我必须得到一个Long毫秒精确的时间戳并将其除以1000以产生标准的Unix时间戳。

而且我很难让Scala从长值中创建一个Int。怎么做这样的演员?

1 个答案:

答案 0 :(得分:60)

在Long上使用.toInt方法,即seconds.toInt