Arbeiten mit Daten in Swift (iOS/macOS): Bibliotheken und Frameworks

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit Daten in Swift (iOS/macOS): Überblick über Bibliotheken und Werkzeuge



Im Apple-Ökosystem wird die Arbeit mit Datum und Uhrzeit traditionell über das Framework Foundation realisiert. Für komplexe Szenarien (Parsen nicht standardisierter Formate, Arbeit mit relativen Daten, Manipulationen in verschiedenen Zeitzonen) greifen Entwickler jedoch häufig auf Drittanbieter-Bibliotheken zurück. In diesem Artikel betrachten wir sowohl die integrierten Möglichkeiten von Swift als auch beliebte Werkzeuge zur Datumsverarbeitung.



1. Integrierte Mittel von Foundation (Date, DateFormatter, Calendar)



Der grundlegende Typ für die Arbeit mit Daten ist die Struktur Date. Sie stellt einen absoluten Zeitpunkt dar (Anzahl der Sekunden seit dem 1. Januar 2001). Für die Formatierung wird DateFormatter und für Kalenderberechnungen Calendar verwendet.



import Foundation

// Aktuelles Datum abrufenlet now = Date()print("Aktuelles Datum: \\(now)")

// Datum formatierenlet formatter = DateFormatter()formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"formatter.timeZone = TimeZone(identifier: "Europe/Moscow")let formattedDate = formatter.string(from: now)print("Formatiertes Datum: \\(formattedDate)")

// String in Datum parsenlet dateString = "2025-03-15 14:30:00"if let parsedDate = formatter.date(from: dateString) { print("Geparstes Datum: \\(parsedDate)")}

// Kalenderberechnungenlet calendar = Calendar.currentlet tomorrow = calendar.date(byAdding: .day, value: 1, to: now)!print("Morgen: \\(tomorrow)")


2. SwiftDate — eine leistungsstarke Bibliothek für die Arbeit mit Daten



SwiftDate ist die beliebteste Drittanbieter-Bibliothek für Swift. Sie erweitert die Möglichkeiten von Foundation um:

  • Bequeme Syntax zum Erstellen von Daten (z. B. DateInRegion)
  • Arbeit mit relativen Daten ("vor 2 Stunden", "in 3 Tagen")
  • Unterstützung aller Zeitzonen und Kalender
  • Parsen von Strings in beliebigen Formaten


import SwiftDate

// Datum in einer Region erstellenlet region = Region(calendar: Calendars.gregorian, zone: Zones.europeMoscow, locale: Locales.russian)let date = DateInRegion("2025-03-15 14:30:00", format: "yyyy-MM-dd HH:mm:ss", region: region)!print("Datum in der Region: \\(date)")

// Relative Zeitlet now = DateInRegion()let twoHoursAgo = now - 2.hoursprint("Vor 2 Stunden: \\(twoHoursAgo.toRelative())") // "vor 2 Stunden"

// Differenz zwischen Datenlet later = now + 5.dayslet difference = later - nowprint("Differenz: \\(difference.days) Tage")

// Umrechnung in eine andere Zeitzonelet newYorkRegion = Region(zone: Zones.americaNewYork)let dateInNY = date.convert(to: newYorkRegion)print("In New York: \\(dateInNY)")


3. TimeInterval und Arbeit mit Zeitintervallen



TimeInterval ist ein Datentyp in Swift, der die Anzahl der Sekunden darstellt. Er wird häufig zur Messung von Zeitabständen und Verzögerungen verwendet.



import Foundation

// Intervall erstellenlet oneHour: TimeInterval = 3600let twoDays: TimeInterval = 2 * 24 * 3600

// Ausführungszeit messenlet start = Date()// Simulation einer langwierigen Operationsleep(2)let end = Date()let elapsed = end.timeIntervalSince(start)print("Vergangen: \\(elapsed) Sekunden")

// Verwendung mit DispatchQueueDispatchQueue.main.asyncAfter(deadline: .now() + oneHour) { print("Eine Stunde ist vergangen")}


4. ISO8601DateFormatter — Arbeit mit internationalen Formaten



Für die Arbeit mit Daten im ISO-8601-Format (häufig in APIs verwendet) bietet Apple die spezialisierte Klasse ISO8601DateFormatter an.



import Foundation

let isoFormatter = ISO8601DateFormatter()isoFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]

// ISO-String parsenlet isoString = "2025-03-15T14:30:00.000Z"if let date =

Empfehlungen