Clojure:
Vergleich von zwei Daten

So geht’s:

;; Importiere das java.util.Date
(import 'java.util.Date)

;; Erstelle zwei Daten
(def date1 (Date.))
(Thread/sleep 1000) ;; Warte 1 Sekunde
(def date2 (Date.))

;; Vergleiche die Daten
(println (.before date1 date2)) ;; date1 ist vor date2 -> true
(println (.after date1 date2))  ;; date1 ist nach date2 -> false
(println (.equals date1 date2)) ;; date1 ist gleich date2 -> false

;; Nutze clj-time für mehr Funktionalität
(require '[clj-time.core :as t])
(require '[clj-time.coerce :as c])

;; Erstelle zwei Joda-Time-Daten
(def joda-date1 (c/to-date-time date1))
(def joda-date2 (c/to-date-time date2))

;; Vergleiche die Joda-Time-Daten
(println (.isBefore joda-date1 joda-date2)) ;; true
(println (.isAfter joda-date1 joda-date2))  ;; false
(println (.isEqual joda-date1 joda-date2))  ;; false

Sample Output:

true
false
false
true
false
false

Deep Dive:

Historisch gesehen verwendeten Clojure-Entwickler oft die Java-Datums-API direkt, da Clojure auf der JVM läuft. Alternativ gibt es die clj-time Bibliothek, die auf der Joda-Time Bibliothek basiert und eine reichhaltigere API bietet. Bei der Implementierung ist zu beachten, dass Vergleiche auf Millisekunden-Genauigkeit beruhen und Zeitzone sowie Sommer-/Winterzeit Einfluss auf das Ergebnis haben können.

Siehe auch: