Swift:
Vergleich von zwei Daten

How to:

import Foundation

let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"

let date1 = formatter.date(from: "2023/04/01 14:00")!
let date2 = formatter.date(from: "2023/04/02 10:00")!

// Vergleich ob Datum gleich ist
if date1 == date2 {
    print("Die Termine sind gleich.")
} else {
    print("Die Termine sind nicht gleich.")
}

// Vergleich ob Datum früher ist
if date1 < date2 {
    print("Termin 1 ist früher als Termin 2.")
} else {
    print("Termin 1 ist nicht früher als Termin 2.")
}

// Vergleich ob Datum später ist
if date1 > date2 {
    print("Termin 1 ist später als Termin 2.")
} else {
    print("Termin 1 ist nicht später als Termin 2.")
}

Die Ausgabe:

Die Termine sind nicht gleich.
Termin 1 ist früher als Termin 2.
Termin 1 ist nicht später als Termin 2.

Deep Dive

Schon mit frühen Programmiersprachen gab es die Notwendigkeit, Zeit und Daten zu vergleichen. In Swift ist das besonders leicht, dank des Date-Objekts und des DateFormatter. Vor Swift und Cocoa/Cocoa Touch gab’s NSDate und davor mussten Entwickler oft auf C-Bibliotheken zurückgreifen, um mit Zeitangaben vernünftig arbeiten zu können. Neben den direkten Vergleichen kann man in Swift auch die Zeitdifferenz zwischen zwei Daten berechnen, indem man timeIntervalSince Methoden benutzt.

Alternativen zum direkten Vergleich sind die Nutzung von NSCalendar und DateComponents, um spezifische Teile eines Datums zu vergleichen. Das ist besonders hilfreich, wenn man sich nur für den Tag, Monat oder das Jahr interessiert.

Beim Vergleich von Daten sollte man auch beachten, dass Zeitzonen eine Rolle spielen können. Es ist wichtig, dass der DateFormatter korrekt konfiguriert wird, um potentielle Fehler durch Zeitzonenunterschiede zu vermeiden.

See Also