Formation PUB900 : Développer une application pour iPhone avec SwiftUI, H-2024 Les dates

64.2 Initialiser une date avec Swift


Le langage Swift propose la structure Date pour représenter des dates et heures.

Date et heure actuelles

Pour initialiser une variable qui représente le moment présent :

Swift

let maintenant = Date()

ou

Swift

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.

Représenter une date et une heure données

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.

Swift

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.

Fuseau horaire

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 :

Swift

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
}

Créer une chaîne à partir d'une date

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 ».

Pour plus d'information

« Introduction to Date and Time Programming in Swift, Part 1 ». Auth0 by Otka. https://auth0.com/blog/introduction-date-time-programming-swift-1/

 

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre