Arbeiten mit Daten in Swift (iOS/macOS): Überblick über Bibliotheken
Die Arbeit mit Datum und Uhrzeit gehört zu den häufigsten und gleichzeitig komplexesten Aufgaben in der Entwicklung für iOS und macOS. Das Standard-Framework Foundation bietet leistungsstarke, aber nicht immer intuitive Werkzeuge: Date, DateFormatter, Calendar, TimeInterval. Zur Vereinfachung von Routineaufgaben (Parsen von Strings, menschenlesbare Intervalle, Lokalisierung) gibt es jedoch spezialisierte Bibliotheken. In diesem Artikel betrachten wir die grundlegenden Ansätze und beliebten Werkzeuge.
1. Integrierte Mittel von Foundation
Bevor Sie Drittanbieter-Lösungen einbinden, ist es wichtig, mit den nativen Werkzeugen arbeiten zu können. Die wichtigsten Klassen:
Date— ein Zeitpunkt (auf die Sekunde genau).DateFormatter— Umwandlung eines Strings in ein Datum und umgekehrt.Calendar— Arbeit mit Kalendereinheiten (Jahr, Monat, Tag).TimeInterval— Differenz zwischen Daten in Sekunden.
Beispiel: Datumsformatierung
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:00Beispiel: Berechnung der Differenz in Tagen
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!) // 7Diese Möglichkeiten reichen für die meisten grundlegenden Szenarien aus. Sobald jedoch komplexes Parsen oder Lokalisierung erforderlich ist, wird der Code umständlich.
2. Die Bibliothek DateHelper
DateHelper ist eine leichtgewichtige Bibliothek (verfügbar über den Swift Package Manager), die praktische Erweiterungen zu Date hinzufügt. Das Hauptmerkmal sind menschenlesbare relative Daten.
Installation: Fügen Sie in Package.swift die Abhängigkeit https://github.com/melvitax/DateHelper hinzu.
Beispiel: «3 Stunden zuvor»
import DateHelper
let pastDate = Date() - 3.hoursprint(pastDate.toRelativeString()) // "3 hours ago"// Bei Lokalisierung: print(pastDate.toRelativeString(locale: "ru"))Die Bibliothek unterstützt viele Ausgabeformate: .short, .medium, .full. Dies ist die ideale Wahl für Anwendungen, die «gerade eben», «gestern», «vor 2 Wochen» anzeigen müssen, ohne einen eigenen Parser schreiben zu müssen.
3. SwiftDate — das leistungsstärkste Werkzeug
SwiftDate (Autor: Daniele Margutti) ist praktisch der De-facto-Standard für die Arbeit mit Daten in Swift. Es umfasst:
- Parsen von Strings mit automatischer Formaterkennung.
- Manipulation von Daten (Hinzufügen/Subtrahieren von Komponenten).
- Berechnung von Differenzen in beliebigen Einheiten.
- Lokalisierung (Unterstützung von 30+ Sprachen).
- Arbeit mit Zeitzonen und Kalendern.
Installation: über SPM oder CocoaPods.
Beispiel: Parsen eines Strings mit unbekanntem Format
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"}Beispiel: Intervall in menschenlesbarer Form erhalten
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 kann auch mit Auch in der Bibliothek
React für JavaScript (Node.js): Vollständiger Leitfaden mit Beispielen
Datenvalidierung in C++: Bibliotheken, Muster und Codebeispiele
Aufgabenplaner in Go (Golang): cron, gocron und robfig/cron
Swift-QR-Code-Generator: Bibliothek EFQRCode für iOS und macOS
Geolokalisierung und Karten in Go (Golang): Bibliotheken und Codebeispiele
Empfehlungen