Les dates en Swift

Quelque soit la plateforme ou le langage de programmation utilisé, la manipulation de la date et de l’heure est une chose essentielle. Aujourd’hui nous allons rapidement voir comment créer, manipuler et afficher les dates en Swift.

Date

En Swift, la première méthode pour créer une date correspondant à l’instant présent (date + heure) il suffit de créer un objet Date :

let now = Date()
print(now) // 2017-01-20 20:51:42 +0000

Par défaut l’objet `Date` utilise l’GMT (Greenwich Mean Time) et le fuseau horaire anglais (GMT+0). D’où l’affichage suivant : 2017-01-20 20:51:42 +0000. Afin d’afficher la date (et l’heure) selon le fuseau horaire de l’utilisateur nous pouvons utiliser l’objet DateFormater.

DateFormater

L’objet DateFormater permet d’afficher la date et l’heure selon vos besoins et / ou en se basant sur les paramètres de l’utilisateur. Par example la même date affichée en anglais et en français :

let now = Date()

let english       = DateFormatter()
english.dateStyle = .medium
english.timeStyle = .medium
english.locale    = Locale(identifier: "EN-en")
print(english.string(from: now)) // Jan 20, 2017, 10:29:51 PM

let french       = DateFormatter()
french.dateStyle = .medium
french.timeStyle = .medium
french.locale    = Locale(identifier: "FR-fr")
print(french.string(from: now)) // 20 janv. 2017 à 22:29:51

Comme vous pouvez le remarquer l’objet DateFormatter permet d’afficher les dates en fonction de la langue et de la forme de l’utilisateur cible. Il y a beaucoup de paramètre possible comme le dateFormat, la timezone, les styles d’affichages, etc. Pour en savoir plus sur cet objet il y a un site de référence qui est : nsdateformatter.com.

Avec un DateFormater vous pouvez aussi créer une date à partir d’une chaine de caractère:

let format        = DateFormatter()
format.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
print(format.date(from: "2016-08-26T12:39:00Z")) // Optional(2016-08-26 12:39:00 +0000)

Maintenant que l’on a vu comment afficher les dates correctement, nous allons voir comment manipuler les dates.

DateComponents

Avec un DateComponents vous pouvez manipuler les dates d’une manière usuelle (en correspondance avec le calendrier). Avec cet objet on peut créer une date en spécifiant l’année, le mois, le jour par example :

var component      = DateComponents()
component.calendar = Calendar.current
component.year     = 2016
component.month    = 2
component.day      = 28

print(component.date) // Optional(2016-02-28 00:00:00 +0000)

L’avantage de cette méthode est qu’il permet d’ajouter des heures, jours ou autre composant de manière simple. Par example utilisons cette méthode et ajoutons 2 jours :

var component      = DateComponents()
component.calendar = Calendar.current
component.year     = 2016
component.month    = 2
component.day      = 28 + 2
component.hour     = 1

print(component.date) // Optional(2016-03-01 00:00:00 +0000)

Vous remarquerez qu’ici l’année bissextile a bien été prise en compte par le composant, ce qui rend la manipulation de date vraiment très simple.

Conclusion

La manipulation des dates est quelque de chose de complexe et dans cet article nous avons a peine survolé le sujet. Bien qu’a première vue la librairie semble complexe a utiliser, elle est très complète et surtout vous simplifiera la vie dans l’internationalisation de vos interfaces.

Comme d’habitude, si vous avez la moindre question n’hésitez pas.

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (7 votes, average: 5,00 out of 5)
Loading...

Aucun commentaire

Time limit is exhausted. Please reload CAPTCHA.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  1. adbaibi · 20 janvier 2017

    comment récupèrer le jour et le moi… dans la variable Date une fois qu’on a init la Date() il y a t’il une fonction ou doit ton récupèrer
    tout en seconde et faire nous meme