Kotlin:
เปรียบเทียบสองวันที่
วิธีการ:
import java.time.LocalDate
fun main() {
val date1 = LocalDate.of(2023, 4, 10)
val date2 = LocalDate.of(2023, 5, 15)
println(date1.isBefore(date2)) // จริง
println(date1.isAfter(date2)) // เท็จ
println(date1.isEqual(date2)) // เท็จ
// เปรียบเทียบโดยใช้ compareTo
println(date1.compareTo(date2)) // -1 ถ้า date1 อยู่ก่อน date2
}
ผลลัพธ์ตัวอย่าง:
จริง
เท็จ
เท็จ
-1
ลงลึก
ในอดีต Java มีคลาส Date
และ Calendar
แต่ไม่เป็นมิตรกับผู้ใช้มากนัก Kotlin ใช้คลาสที่คล้ายกันโดยภายใน แต่สนับสนุนการใช้งานแพ็กเกจ java.time
ที่ถูกนำมาใช้ใน Java 8 เพื่อความชัดเจนและประโยชน์ที่ดีขึ้น
มีทางเลือกอื่นๆ เช่น Instant
สำหรับการประทับเวลา ZonedDateTime
สำหรับวันที่เฉพาะเขตเวลา หรือการใช้ไลบรารีของบุคคลที่สาม เช่น Joda-Time ควรคำนึงถึงรายละเอียดการนำไปใช้—Instant
ใช้การประทับเวลา Unix แบบดั้งเดิม ในขณะที่ LocalDate
ไม่แสดงที่ละเอียดนี้และจัดการกับวันโดยไม่มีเวลาหรือเขตเวลา
การรู้ว่าคลาสใดเหมาะสมกับความต้องการของคุณที่สุดเป็นสิ่งสำคัญ LocalDate
เพียงพอสำหรับการเปรียบเทียบวันที่ส่วนใหญ่ แต่สำหรับการเปรียบเทียบช่วงเวลาจริง ๆ ควรพิจารณา ZonedDateTime
หรือ Instant
ดูเพิ่มเติม
- เอกสารการใช้งานการทำงานกับวันที่และเวลาอย่างเป็นทางการของ Kotlin: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.time/
- คู่มือวันที่และเวลาของ Java 8: https://www.oracle.com/technical-resources/articles/java/jf14-date-time.html
- ไลบรารี Joda-Time: https://www.joda.org/joda-time/