Je mets à jour certaines de mes anciennes Swift 2 réponses à Swift 3. Ma réponse à cette question =, cependant, n'est pas facile à mettre à jour car la question demande spécifiquement NSDate
et non Date
. Je crée donc une nouvelle version de cette question pour laquelle je peux mettre à jour ma réponse.
Question
Si je commence par une instance Date
comme celle-ci
let someDate = Date()
comment pourrais-je convertir cela en un entier?
Associé mais différent
Ces questions demandent différentes choses:
Date
à Int
// using current date and time as an example
let someDate = Date()
// convert Date to TimeInterval (typealias for Double)
let timeInterval = someDate.timeIntervalSince1970
// convert to Integer
let myInt = Int(timeInterval)
La conversion de Double
en Int
entraîne la perte des millisecondes. Si vous avez besoin des millisecondes, multipliez par 1000 avant de convertir en Int
.
Int
à Date
Y compris l'inverse pour l'exhaustivité.
// convert Int to Double
let timeInterval = Double(myInt)
// create NSDate from Double (NSTimeInterval)
let myNSDate = Date(timeIntervalSince1970: timeInterval)
J'aurais aussi pu utiliser timeIntervalSinceReferenceDate
au lieu de timeIntervalSince1970
tant que j'étais cohérent. Cela suppose que l'intervalle de temps est en secondes. Notez que Java utilise des millisecondes.
NSDate
, voir cette réponse .