web-dev-qa-db-fra.com

Comment lancer Long to Int dans Scala?

Je voudrais utiliser la fonction suivante pour convertir l'horodatage Joda Time en 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
}

Les valeurs de temps que j'ai l'intention d'obtenir ne devraient jamais être précises à la milliseconde près, elles sont UTC de seconde précision par contrat et doivent être stockées (dans une base de données MySQL) en tant qu'horodatages Unix standard Int. Mais Joda Time ne fournit que getMillis et non getSeconds, donc je dois obtenir un horodatage précis en millisecondes et le diviser par 1000 pour produire un horodatage Unix standard.

Et je suis bloqué en faisant Scala pour faire un Int à partir d'une valeur Long. Comment faire un tel casting?

33
Ivan

Utilisez le .toInt méthode sur Long, c'est-à-dire seconds.toInt

62