Le langage Swift propose la structure Date pour représenter des dates et heures.
Pour initialiser une variable qui représente le moment présent :
let maintenant = Date()
ou
let maintenant = Date.now
La date ainsi créée tiendra compte du fuseau horaire de l'appareil et du fait qu'on est en heure normale ou avancée.
Dans le cas où il faut représenter un moment donné, il faut travailler avec un DateFormatter().
Cet extrait de code permet de créer une instance de Date à partir d'une chaîne de caractères.
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateTransactionString = "2024-02-26 08:39:00"
if let dateTransaction = dateFormatter.date(from: dateTransactionString) {
// ici, l'instance de Date est correctement initialisée
}
La date ainsi créée sera de type Date?. Le type est un optionnel puisque si on fournit une chaîne qui ne correspond pas à une date valide, la variable prendra la valeur nil.
Par défaut, la date créée avec un DateFormatter est basée sur le fuseau horaire de l'appareil. Cependant, sa représentation interne est toujours basée sur fuseau horaire GMT (Greenwich Mean Time).
Donc, si la date créée est au fuseau horaire de Montréal, sa représentation interne sera ajustée pour représenter l'heure GMT. Par exemple, s'il est 7h43 à Montréal, la représentation interne aura 5 heures de moins, soit 2h43.
Si la date doit être affichée pour un autre fuseau horaire, il est possible de forcer un fuseau horaire comme suit :
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateTransactionString = "2024-02-26 08:39:00"
dateFormatter.timeZone = TimeZone(abbreviation: "GMT")
if let dateTransaction = dateFormatter.date(from: dateTransactionString) {
// ici, l'instance de Date est correctement initialisée
}
Si vous avez besoin d'effectuer l'opération inverse, c'est-à-dire créer une chaîne à partir d'une instance de Date, consultez la fiche « Convertir une date en chaîne ».
« Introduction to Date and Time Programming in Swift, Part 1 ». Auth0 by Otka. https://auth0.com/blog/introduction-date-time-programming-swift-1/
▼Publicité