Kotlin:
Vergleich von zwei Daten
How to:
import java.time.LocalDate
fun main() {
val datum1 = LocalDate.of(2023, 3, 14)
val datum2 = LocalDate.now()
println("Datum1 ist vor Datum2: ${datum1.isBefore(datum2)}")
println("Datum1 ist nach Datum2: ${datum1.isAfter(datum2)}")
println("Datum1 ist gleich Datum2: ${datum1.isEqual(datum2)}")
}
// Erwartete Ausgabe (abhängig vom aktuellen Datum):
// Datum1 ist vor Datum2: true
// Datum1 ist nach Datum2: false
// Datum1 ist gleich Datum2: false
Deep Dive
Historisch gesehen gab es viele Wege, Daten in Software zu vergleichen. Vor Java 8 war java.util.Date
gängig, doch umständlich, vor allem wegen Zeitzone und mutable Zuständen. Mit Java 8 kam java.time
, das API aus JSR-310, inspiriert durch Joda-Time. Diese API wird auch von Kotlin genutzt und erleichtert den Umgang mit Datum und Zeit.
Alternativen zum Standard-API gibt es, wie zum Beispiel Joda-Time oder Apache Commons Lang. Diese könnten nützlich sein, wenn zusätzliche Funktionalität benötigt wird oder man mit alten Systemen arbeitet, die java.time noch nicht unterstützen.
Die Implementierungsdetails variieren je nach Framework und Programmiersprache. In Kotlin ist die Verwendung von java.time.LocalDate
für Datum-Vergleiche standard und bevorzugt dank der Klaren API und Unmodifiable-Objekten, die Nebenwirkungen vermeiden.
See Also
- Die offizielle Kotlin-Dokumentation zu Daten und Zeiten: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.time/
- JSR-310 User Guide für tieferes Verständnis: https://www.oracle.com/technical-resources/articles/java/jf14-date-time.html
- Joda-Time, wenn java.time keine Option ist: https://www.joda.org/joda-time/
- Apache Commons Lang für Zusatzfunktionen: https://commons.apache.org/proper/commons-lang/