LocalDate, LocalTime, LocalDateTime
แทนวันที่และเวลา
LocalDate, LocalTime, LocalDateTime เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
ชุดคำสั่งวันที่สมัยใหม่
ตั้งแต่ Java 8 เป็นต้นมา แพ็กเกจ java.time ได้เข้ามาแทนที่คลาสเก่าที่ทำให้เกิดข้อผิดพลาดได้ง่ายอย่าง Date และ Calendar ชนิดข้อมูลหลัก ได้แก่ LocalDate, LocalTime และ LocalDateTime
ทั้งหมดเป็นออบเจ็กต์ที่ไม่เปลี่ยนรูปและปลอดภัยต่อการใช้งานหลายเธรด
LocalDate
LocalDate ใช้แทนวันที่ที่ไม่มีส่วนเวลา ประกอบด้วยปี เดือน และวัน LocalDate.now() ให้วันที่ปัจจุบัน แต่การทดสอบควรใช้วันที่ตายตัวเพื่อให้ผลลัพธ์คาดเดาได้
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date);
}
}การอ่านส่วนประกอบของวันที่
คุณสามารถดึงส่วนประกอบแต่ละส่วนออกมาได้ด้วย getYear, getMonthValue, getDayOfMonth และ getDayOfWeek ที่มีประโยชน์
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.getYear());
System.out.println(date.getMonthValue());
System.out.println(date.getDayOfWeek());
}
}LocalTime
LocalTime ใช้แทนเวลาของวันโดยไม่มีวันที่ ได้แก่ ชั่วโมง นาที วินาที และนาโนวินาที
import java.time.LocalTime;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 30, 15);
System.out.println(time);
System.out.println(time.getHour());
}
}LocalDateTime
LocalDateTime รวมวันที่และเวลาไว้เป็นค่าเดียวกัน โดยยังไม่มีเขตเวลาผูกอยู่
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
System.out.println(dt);
}
}การรวมวันที่กับเวลา
คุณสามารถรวม LocalDate กับ LocalTime โดยใช้ atTime เพื่อสร้าง LocalDateTime ได้
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
public class Main {
public static void main(String[] args) {
LocalDate d = LocalDate.of(2026, 5, 30);
LocalTime t = LocalTime.of(8, 0);
LocalDateTime dt = d.atTime(t);
System.out.println(dt);
}
}ความไม่เปลี่ยนแปลงและ with
ชนิดข้อมูลเหล่านี้ไม่สามารถเปลี่ยนแปลงได้ เมธอดอย่าง withYear จะส่งคืนสำเนาใหม่ที่แก้ไขแล้ว โดยไม่เปลี่ยนแปลงค่าเดิม
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate original = LocalDate.of(2026, 5, 30);
LocalDate changed = original.withYear(2030);
System.out.println(original);
System.out.println(changed);
}
}การเปรียบเทียบวันที่
ใช้ isBefore, isAfter และ isEqual เพื่อเปรียบเทียบลำดับตามเวลาได้อย่างอ่านเข้าใจง่าย
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate a = LocalDate.of(2026, 1, 1);
LocalDate b = LocalDate.of(2026, 12, 31);
System.out.println(a.isBefore(b));
System.out.println(a.isAfter(b));
}
}การตรวจสอบที่มีประโยชน์
เมธอดอำนวยความสะดวกช่วยตอบคำถามที่พบบ่อย เช่น isLeapYear และ lengthOfMonth
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2024, 2, 1);
System.out.println(date.isLeapYear());
System.out.println(date.lengthOfMonth());
}
}การแปลงข้อความเป็นค่า
แต่ละชนิดข้อมูลสามารถแปลงสตริงที่อยู่ในรูปแบบ ISO ได้ LocalDate.parse อ่านค่าอย่าง 2026-05-30 ได้
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.parse("2026-05-30");
System.out.println(date.getMonth());
}
}การเลือกชนิดข้อมูลที่เหมาะสม
ใช้ LocalDate สำหรับวันเกิดและวันที่ในปฏิทิน ใช้ LocalTime สำหรับเวลาเปิดทำการ และใช้ LocalDateTime สำหรับนัดหมายที่ประกอบด้วยวันที่และเวลา ทั้งสามชนิดไม่มีเขตเวลาอยู่ภายใน
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับชนิดข้อมูลวันที่และเวลาพื้นฐาน
สรุปทบทวน
คุณได้เรียนรู้ชนิดข้อมูลพื้นฐานใน java.time ดังนี้
LocalDateสำหรับวันที่LocalTimeสำหรับเวลา และLocalDateTimeสำหรับทั้งวันที่และเวลา- ทุกชนิดไม่สามารถเปลี่ยนแปลงได้ เมธอด
withจะส่งคืนสำเนาใหม่ - อ่านส่วนต่าง ๆ ได้ด้วย
getYear,getDayOfWeekและเมธอดอ่านค่าอื่น ๆ ที่คล้ายกัน - เปรียบเทียบได้ด้วย
isBeforeและisAfter - แปลงสตริง ISO ได้ด้วย
parse
คำถามที่พบบ่อย
บทเรียน “LocalDate, LocalTime, LocalDateTime” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “LocalDate, LocalTime, LocalDateTime” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “LocalDate, LocalTime, LocalDateTime”
แทนวันที่และเวลา คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “LocalDate, LocalTime, LocalDateTime” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- LocalDate, LocalTime, LocalDateTime
- Instant และ Duration
- Period และการคำนวณวันที่
- การจัดรูปแบบด้วย DateTimeFormatter