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