Travailler avec les dates et l'heure en Swift : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction à la gestion des dates et heures en Swift

La gestion des dates et des heures est l'une des tâches clés dans le développement d'applications pour iOS et macOS. Qu'il s'agisse d'afficher la date actuelle, de calculer la différence entre des événements ou de planifier des notifications, Swift fournit une boîte à outils puissante et flexible pour ces objectifs. Dans cet article, nous allons passer en revue les classes et méthodes principales : Date, DateFormatter, Calendar, DateComponents et TimeInterval. Vous apprendrez à créer, formater, comparer et manipuler les dates en Swift.

Ce contenu sera utile aussi bien aux débutants qu'aux développeurs expérimentés souhaitant systématiser leurs connaissances. Tous les exemples de code peuvent être utilisés immédiatement dans vos projets.



Classes principales pour la gestion des dates



La classe Date

Date est le type fondamental représentant un moment précis dans le temps, indépendamment du fuseau horaire ou du calendrier. Il stocke le nombre de secondes écoulées depuis le 1er janvier 2001 (l'époque Cocoa).

import Foundation

// Date et heure actuelleslet now = Date()print("Maintenant : \\(now)")

// Date dans 1 heurelet oneHourLater = Date(timeIntervalSinceNow: 3600)print("Dans une heure : \\(oneHourLater)")

// Date à partir d'un nombre donné de secondes depuis l'époquelet epochDate = Date(timeIntervalSinceReferenceDate: 0)print("Époque Cocoa : \\(epochDate)")


TimeInterval

TimeInterval est simplement un alias pour Double représentant un nombre de secondes. Il est utilisé pour définir des intervalles de temps.

let interval: TimeInterval = 86400 // 24 heures en secondeslet tomorrow = Date(timeIntervalSinceNow: interval)print("Demain : \\(tomorrow)")


DateFormatter

DateFormatter est responsable de la conversion d'une date en chaîne de caractères et vice versa. C'est l'une des classes les plus fréquemment utilisées.

let formatter = DateFormatter()formatter.dateStyle = .longformatter.timeStyle = .short

let currentDate = Date()let dateString = formatter.string(from: currentDate)print("Date formatée : \\(dateString)")

// Conversion inverselet dateFromString = formatter.date(from: "15 avril 2025, 14:30")print("Date à partir de la chaîne : \\(dateFromString ?? Date())")

Vous pouvez définir votre propre format avec dateFormat :

formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"let customString = formatter.string(from: Date())print("Format personnalisé : \\(customString)")


Calendrier et composants de date



Calendar

Calendar permet de travailler avec les dates dans le contexte d'un calendrier spécifique (grégorien, islamique, etc.) et d'un fuseau horaire.

let calendar = Calendar.currentlet components = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: Date())print("Année : \\(components.year!), Mois : \\(components.month!), Jour : \\(components.day!)")


DateComponents

DateComponents est une structure contenant les composants individuels d'une date (année, mois, jour, heure, etc.). Elle est utilisée pour créer de nouvelles dates ou extraire des parties de dates existantes.

// Création d'une date à partir de composantsvar birthdayComponents = DateComponents()birthdayComponents.year = 1990birthdayComponents.month = 6birthdayComponents.day = 15birthdayComponents.hour = 10

if let birthday = calendar.date(from: birthdayComponents) { print("Anniversaire : \\(birthday)")}

// Ajout de jours à une dateif let nextWeek = calendar.date(byAdding: .day, value: 7, to: Date()) { print("Dans une semaine : \\(nextWeek)")}

Les composants peuvent être utilisés pour vérifier les propriétés d'une date :

let isToday = calendar.isDateInToday(Date())print("Aujourd'hui ? \\(isToday)")

let isWeekend = calendar.isDateInWeekend(Date())print("Week-end ? \\(isWeekend)")


Com

Blogs

Book Recommendations