Une date Swift, plusieurs origines possibles
Dans Foundation, Date représente un instant. Pour l’échanger sous forme numérique, précisez l’origine et l’unité. timeIntervalSince1970 fournit des secondes depuis l’Epoch Unix ; timeIntervalSinceReferenceDate utilise la référence du 1er janvier 2001.
import Foundation
let date = Date(timeIntervalSince1970: 1711972800)
let formatter = ISO8601DateFormatter()
print(formatter.string(from: date))
// 2024-04-01T12:00:00Z
print(date.timeIntervalSince1970)
// 1711972800.0Convertir la référence 2001 en Unix
La référence Foundation est décalée de 978 307 200 secondes par rapport à l’Epoch Unix.
let referenceSeconds: TimeInterval = 733665600
let date = Date(timeIntervalSinceReferenceDate: referenceSeconds)
print(date.timeIntervalSince1970) // 1711972800.0Ne pas généraliser à tous les fichiers Apple
Une base d’application, une métadonnée photo ou un journal système peut adopter une autre représentation : secondes, nanosecondes, chaîne de date, fuseau explicite ou absent. Le nom Apple ne suffit pas à déterminer le format. Vérifiez le schéma et comparez une valeur dont la date est connue.
Pour utiliser notre convertisseur Unix avec une donnée relative à 2001, convertissez d’abord l’origine puis sélectionnez la bonne unité. Une simple multiplication par 1 000 ne corrige pas une origine différente.