Kotlin:
Confronto tra due date

How to:

Kotlin rende il confronto tra date diretto grazie a java.time.LocalDate. Ecco come si fa:

import java.time.LocalDate

fun main() {
    val date1 = LocalDate.of(2023, 3, 14)
    val date2 = LocalDate.of(2023, 3, 28)

    println(date1.isBefore(date2)) // true
    println(date1.isAfter(date2)) // false
    println(date1.isEqual(date2)) // false
}

Output:

true
false
false

Deep Dive

Prima di java.time, introdotto in Java 8 e disponibile in Kotlin, avevamo java.util.Date e java.util.Calendar. Complesse e meno intuitive, spingevano gli sviluppatori a librerie esterne come Joda-Time.

Con java.time le cose si sono semplificate. Utilizza il concetto di immutabilità, rendendo le date sicure in contesti multithreading. Offre anche precisione di nanosecondi, coprendo la maggior parte dei bisogni.

Alternativamente, per operazioni più complesse ci si può affidare a librerie come ThreeTenABP su Android o facendo uso di APIs specifiche del framework.

Il confronto è basato sulla cronologia ISO e tiene conto dei fuse orari se si usa ZonedDateTime o OffsetDateTime.

See Also