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

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



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:00


Beispiel: 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!) // 7


Diese 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

Empfehlungen