次の関数を使用して、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 DBに)さらに保存されます。ただし、Joda TimeはgetSecondsではなくgetMillisのみを提供するため、標準のUnixタイムスタンプを生成するには、ミリ秒単位の正確なタイムスタンプを取得し、1000で割る必要があります。
そして、私はScalaを作成して、Long値からIntを作成します。このようなキャストを行う方法は?
使用 .toInt
Longのメソッド、つまりseconds.toInt