คลาส Java LocalDateไม่สามารถเปลี่ยนรูปแบบได้ ซึ่งหมายความว่าเมื่อสร้างอินสแตนซ์แล้ว คุณจะไม่สามารถแก้ไขได้ LocalDateมีวิธีการที่เป็นประโยชน์มากมายในการจัดการและสืบค้นวันที่ เช่น การเพิ่มหรือการลบวัน เดือน หรือปี การรับวันในสัปดาห์ หรือการตรวจสอบว่าวันที่อยู่ก่อนหรือหลังวันที่อื่น
ตัวอย่าง LocalDate
เริ่มต้นด้วยตัวอย่างง่ายๆ ที่สร้าง อินสแตนซ์ LocalDateสำหรับวันที่ปัจจุบันและพิมพ์ลงในคอนโซล:
import java.time.LocalDate;
public class LocalDateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today's date: " + today);
}
}
ในตัวอย่างนี้ เรานำเข้า คลาส LocalDateจาก แพ็กเกจ java.timeและสร้างอินสแตนซ์ใหม่ของLocalDateที่เรียกว่าtoday โดยใช้ เมธอดstatic now() วิธีการนี้ส่งคืน วัตถุ LocalDateที่แสดงวันที่ปัจจุบันโดยยึดตามนาฬิกาของระบบในเขตเวลาเริ่มต้น จากนั้นเราพิมพ์วันที่ปัจจุบันไปยังคอนโซลโดยใช้ เมธอด println()ของอ็อบเจ็กต์System.out ผลลัพธ์จะมีลักษณะดังนี้:
เอาท์พุต
วันที่วันนี้: 2023-05-01
ตัวสร้าง LocalDate
นอกจากเมธอดnow() แล้ว LocalDateยังมีตัวสร้างอื่นๆ อีกหลายตัวที่ช่วยให้คุณสามารถสร้าง อินสแตนซ์ LocalDateจากแหล่งต่างๆ ได้ ตัวอย่างเช่น คุณสามารถสร้างLocalDateจากปี เดือน และวันที่ระบุได้:
import java.time.LocalDate;
public class LocalDateConstructorExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2023, 5, 1);
System.out.println("Date 1: " + date1);
}
}
โค้ดนี้สร้างอินสแตนซ์ LocalDate ใหม่ชื่อdate1โดยมีปี 2023 เดือนพฤษภาคม (แสดงด้วยค่า 5) และวันที่ 1 ผลลัพธ์จะเป็น:
เอาท์พุต
วันที่ 1: 2023-05-01
การจัดการวันที่ท้องถิ่น
หนึ่งในคุณสมบัติที่มีประโยชน์ที่สุดของLocalDateคือความสามารถในการจัดการวันที่ ตัวอย่างเช่น คุณสามารถเพิ่มหรือลบวัน เดือน หรือปีโดยใช้ วิธี บวกและลบ :
import java.time.LocalDate;
public class LocalDateManipulationExample {
public static void main(String[] args) {
LocalDate date3 = LocalDate.parse("2023-05-01");
LocalDate date4 = date3.plusDays(1);
LocalDate date5 = date3.minusMonths(1);
LocalDate date6 = date3.plusYears(1);
System.out.println("Date 3: " + date3);
System.out.println("Date 4: " + date4);
System.out.println("Date 5: " + date5);
System.out.println("Date 6: " + date6);
}
}
ในตัวอย่างนี้ ก่อนอื่นเราจะสร้าง อินสแตนซ์ LocalDate ใหม่ ชื่อdate3โดยการแยกวิเคราะห์สตริง "2023-05-01" จากนั้นเราสร้างอินสแตนซ์ LocalDateใหม่สามอินสแตนซ์ที่เรียกว่าdate4 , date5และdate6โดยการเพิ่มหรือลบวัน เดือน หรือปีจากdate3 ผลลัพธ์จะเป็น:
วันที่ 3: 05-01-2023 วันที่ 4: 05-02-2023 วันที่ 5: 04-01-2023 วันที่ 6: 05-01-2024
การเปรียบเทียบ LocalDates
LocalDateยังมีวิธีการเปรียบเทียบวันที่อีกด้วย คุณสามารถตรวจสอบว่าอินสแตนซ์ LocalDate สอง รายการเท่ากันหรือไม่ หรืออินสแตนซ์หนึ่งอยู่ก่อนหรือหลังอินสแตนซ์อื่นโดยใช้เมธอด เท่ากับ() , isBefore()และisAfter()
import java.time.LocalDate;
public class LocalDateCompareExample {
public static void main(String[] args) {
LocalDate date1 = LocalDate.parse("2023-05-01");
LocalDate date2 = LocalDate.parse("2023-05-02");
System.out.println("Are the dates equal? " + date1.equals(date2));
System.out.println("Is date1 before date2? " + date1.isBefore(date2));
System.out.println("Is date2 after date1? " + date2.isAfter(date1));
}
}
ในตัวอย่างนี้ เราสร้าง อินสแตนซ์ LocalDate สอง อินสแตนซ์ที่เรียกว่าdate1และdate2จากนั้นใช้เมธอดเท่ากับ() , isBefore()และisAfter()เพื่อเปรียบเทียบ ผลลัพธ์จะอยู่ในรูปแบบบูลีน เช่นtrueหรือfalse :
วันที่เท่ากันหรือไม่? เท็จ คือ date1 ก่อน date2 หรือไม่ จริงคือ date2 หลังจาก date1 หรือไม่ จริง
LocalDateTime
หากคุณต้องการแสดงวันที่และเวลา คุณสามารถใช้ คลาส LocalDateTimeซึ่งคล้ายกับLocalDateแต่มีส่วนประกอบของเวลา LocalDateTimeมีวิธีการในการจัดการและสืบค้นทั้งส่วนของวันที่และเวลา นี่คือตัวอย่างการสร้าง อินสแตนซ์ LocalDateTime :
import java.time.LocalDateTime;
public class LocalDateTimeExample {
public static void main(String[] args) {
LocalDateTime datetime = LocalDateTime.now();
System.out.println("Current date and time: " + datetime);
}
}
รหัสนี้จะนำเข้า คลาส LocalDateTimeและสร้างอินสแตนซ์ใหม่ที่เรียกว่าdatetimeโดยใช้เมธอดnow() ผลลัพธ์จะมีลักษณะดังนี้:
วันที่และเวลาปัจจุบัน: 2023-05-01T15:30:00.123456789
หมายเหตุ: 'T' ในเอาต์พุตย่อมาจากการเริ่มการประทับเวลา
GO TO FULL VERSION