Kotlin:
Twee datums vergelijken
Hoe:
import java.time.LocalDate
fun main() {
val datum1 = LocalDate.of(2023, 4, 10)
val datum2 = LocalDate.of(2023, 5, 15)
println(datum1.isBefore(datum2)) // true
println(datum1.isAfter(datum2)) // false
println(datum1.isEqual(datum2)) // false
// Vergelijken met compareTo
println(datum1.compareTo(datum2)) // -1 als datum1 voor datum2 is
}
Voorbeelduitvoer:
true
false
false
-1
Diepgaand
Historisch gezien bood Java de klassen Date
en Calendar
, maar deze waren niet erg gebruiksvriendelijk. Kotlin gebruikt vergelijkbare klassen onder de motorkap maar moedigt het gebruik van het java.time
-pakket, geïntroduceerd in Java 8, aan voor betere duidelijkheid en nut.
Er zijn alternatieven zoals Instant
voor tijdstempels, ZonedDateTime
voor tijdzone-specifieke data, of het gebruik van een externe bibliotheek zoals Joda-Time. Houd implementatiedetails in gedachten - Instant
gebruikt een traditionele Unix-tijdstempel terwijl LocalDate
dit abstract maakt en omgaat met een conceptuele dag zonder tijd of tijdzone.
Weten welke klasse het beste aan uw behoeften voldoet, is essentieel. LocalDate
is prima voor de meeste vergelijkingen van data, maar voor nauwkeurige vergelijkingen op een specifiek moment, overweeg ZonedDateTime
of Instant
.
Zie Ook
- De officiële Kotlin-documentatie over data en tijden: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.time/
- Java 8 Datum en Tijd handleiding: https://www.oracle.com/technical-resources/articles/java/jf14-date-time.html
- Joda-Time bibliotheek: https://www.joda.org/joda-time/