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
- Tutorial ufficiale Java Date and Time - The Java™ Tutorials
- ThreetenABP - GitHub repository
- Conversione tra vecchi e nuovi tipi - StackOverflow discussion