我想使用以下函数将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。怎么做这样的演员?
答案 0 :(得分:60)
在Long上使用.toInt
方法,即seconds.toInt