Travail avec les dates en Swift (iOS/macOS) : bibliothèques et outils

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

Travail avec les dates en Swift (iOS/macOS) : aperçu des bibliothèques



Le travail avec les dates et l'heure est l'une des tâches les plus fréquentes et en même temps les plus complexes dans le développement sous iOS et macOS. Le framework standard Foundation fournit des outils puissants, mais pas toujours intuitifs : Date, DateFormatter, Calendar, TimeInterval. Cependant, pour simplifier les opérations courantes (analyse de chaînes, intervalles lisibles, localisation), il existe des bibliothèques spécialisées. Dans cet article, nous examinerons les approches principales et les outils populaires.



1. Outils intégrés de Foundation

Avant d'ajouter des solutions tierces, il est important de savoir travailler avec les outils natifs. Les classes principales :

  • Date — un point dans le temps (à la seconde près).
  • DateFormatter — conversion d'une chaîne en date et vice versa.
  • Calendar — travail avec les unités calendaires (année, mois, jour).
  • TimeInterval — différence entre les dates en secondes.


Exemple : formatage d'une date

import Foundation

let now = Date()let formatter = DateFormatter()formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"formatter.locale = Locale(identifier: "ru_RU")let dateString = formatter.string(from: now)print(dateString) // 2025-02-18 14:30:00


Exemple : calcul de la différence en jours

let calendar = Calendar.currentlet start = Date()let end = calendar.date(byAdding: .day, value: 7, to: start)!let components = calendar.dateComponents([.day], from: start, to: end)print(components.day!) // 7


Ces fonctionnalités sont suffisantes pour la plupart des scénarios de base. Mais dès qu'une analyse complexe ou une localisation est nécessaire, le code devient lourd.



2. Bibliothèque DateHelper

DateHelper est une bibliothèque légère (disponible via Swift Package Manager) qui ajoute des extensions pratiques à Date. La principale caractéristique est les dates relatives lisibles.



Installation : dans Package.swift, ajoutez la dépendance https://github.com/melvitax/DateHelper.



Exemple : « il y a 3 heures »

import DateHelper

let pastDate = Date() - 3.hoursprint(pastDate.toRelativeString()) // "3 hours ago"// Avec localisation : print(pastDate.toRelativeString(locale: "fr"))


La bibliothèque prend en charge de nombreux formats de sortie : .short, .medium, .full. C'est une option idéale pour les applications où il faut afficher « à l'instant », « hier », « il y a 2 semaines » sans écrire son propre analyseur.



3. SwiftDate — l'outil le plus puissant

SwiftDate (auteur : Daniele Margutti) est pratiquement le standard de facto pour le travail avec les dates en Swift. Il comprend :

  • Analyse de chaînes avec détection automatique du format.
  • Manipulations de dates (ajout/soustraction de composants).
  • Calcul de la différence dans toutes les unités.
  • Localisation (prise en charge de 30+ langues).
  • Travail avec les fuseaux horaires et les calendriers.


Installation : via SPM ou CocoaPods.



Exemple : analyse d'une chaîne avec un format inconnu

import SwiftDate

let dateString = "2025-02-18T14:30:00+03:00"if let date = dateString.toDate() { print(date.year) // 2025 print(date.month) // 2 print(date.toFormat("dd MMMM yyyy", locale: Locales.russian)) // "18 февраля 2025"}


Exemple : obtention d'un intervalle sous forme lisible

let start = DateInRegion(Date())let end = start + 2.hours + 30.minuteslet interval = start.toRelativeString(end, style: RelativeFormatter.defaultStyle())print(interval) // "2 hours 30 minutes later"


SwiftDate sait également travailler avec les

Recommendations