web-dev-qa-db-fra.com

Convertir la date en entier en Swift

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:

14
Suragch

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.

Remarque

68
Suragch