ก่อน Java 8, การจัดการกับวันที่เป็นเรื่องยาก คลาสเก่าๆ เช่น java.util.Date และ java.util.Calendar เต็มไปด้วยบั๊กและไม่เป็นมิตรต่อผู้ใช้ แพ็กเกจ java.time ที่นำเสนอใน Java 8 ได้แก้ไขปัญหานี้ด้วยคลาสที่ได้รับการคิดค้นอย่างดี เช่น LocalDate, LocalTime, และ ZonedDateTime มีทางเลือกอื่นหรือไม่?
java.util.Date
java.util.Calendar
java.time
LocalDate
LocalTime
ZonedDateTime
Java ทำให้การเปรียบเทียบวันที่ง่ายมาก เพียงแค่ใช้ LocalDate และเมธอด compareTo, isBefore, หรือ isAfter นี่คือสาระสำคัญ.
compareTo
isBefore
isAfter
Java ทำให้การแปลงวันที่เป็นสตริงง่าย อย่างตรงไปตรงมา คลาส java.time.format.DateTimeFormatter คือทางเลือกของคุณ นี่คือตัวอย่างโค้ด.
java.time.format.DateTimeFormatter
Java นำเสนอวิธีการหลายวิธีในการได้มาซึ่งวันที่ปัจจุบัน โดยใช้ทั้งคลาส java.util.Date แบบเก่า และแพคเกจ java.time ใหม่ (ซึ่งเปิดตัวใน Java 8) ซึ่งมีความหลากหลายและสัญชาตญาณมากยิ่งขึ้น.
วิธีการ: การใช้งานแพคเกจ java.time (แนะนำใน Java 8 ขึ้นไป): import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class DateParser { public static void main(String[] args) { String dateString = "2023-04-30"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate date = LocalDate.parse(dateString, formatter); System.out.println(date); // ผลลัพธ์: 2023-04-30 } } การใช้ SimpleDateFormat (วิธีการเดิม): import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateParser { public static void main(String[] args) { String dateString = "30/04/2023"; SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); try { Date date = formatter.