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