การจัดรูปแบบด้วย DateTimeFormatter
แยกวิเคราะห์และจัดรูปแบบวันที่
การจัดรูปแบบด้วย DateTimeFormatter เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
การแปลงวันที่เป็นข้อความ
toString ตามค่าเริ่มต้นของวันที่จะแสดงผลในรูปแบบ ISO หากต้องการควบคุมรูปแบบการแสดงผลหรือแปลงข้อความที่ไม่ใช่ ISO ให้ใช้ DateTimeFormatter จากแพ็กเกจ java.time.format
รูปแบบที่กำหนดเอง
สร้างตัวจัดรูปแบบด้วย ofPattern ตัวอักษรใช้แทนฟิลด์ต่าง ๆ ได้แก่ yyyy สำหรับปี MM สำหรับเดือน และ dd สำหรับวัน
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
System.out.println(date.format(f));
}
}การจัดรูปแบบเวลา
รูปแบบเวลาใช้ HH แทนชั่วโมงแบบ 24 ชั่วโมง mm แทนนาที และ ss แทนวินาที
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(14, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("HH:mm:ss");
System.out.println(time.format(f));
}
}การรวมวันที่กับเวลา
รูปแบบเดียวสามารถมีทั้งฟิลด์วันที่และเวลาเพื่อใช้กับ LocalDateTime ได้
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDateTime dt = LocalDateTime.of(2026, 5, 30, 9, 45);
DateTimeFormatter f = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
System.out.println(dt.format(f));
}
}ชื่อเดือนในรูปข้อความ
การเขียนตัวอักษรแทนเดือนซ้ำกันจะเปลี่ยนรูปแบบการแสดงผล MM เป็นตัวเลข MMM เป็นชื่อย่อ เช่น May และ MMMM เป็นชื่อเต็ม
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd MMMM yyyy", Locale.ENGLISH);
System.out.println(date.format(f));
}
}ชื่อวันในสัปดาห์
ใช้ EEEE สำหรับชื่อวันในสัปดาห์แบบเต็ม และ EEE สำหรับชื่อแบบย่อ โปรดระบุ Locale เพื่อให้ภาษาในการแสดงผลแน่นอน
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("EEEE, dd MMM", Locale.ENGLISH);
System.out.println(date.format(f));
}
}นาฬิกาแบบสิบสองชั่วโมง
ใช้ hh ตัวพิมพ์เล็กสำหรับชั่วโมงแบบ 12 ชั่วโมง และใช้ a สำหรับเครื่องหมาย AM หรือ PM
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
LocalTime time = LocalTime.of(15, 30);
DateTimeFormatter f = DateTimeFormatter.ofPattern("hh:mm a", Locale.ENGLISH);
System.out.println(time.format(f));
}
}การแปลงข้อความด้วยรูปแบบ
ตัวจัดรูปแบบเดียวกันสามารถแปลงข้อความกลับเป็นวันที่ได้ โดยส่งตัวจัดรูปแบบนั้นเป็นอาร์กิวเมนต์ตัวที่สองให้กับ parse
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse("30/05/2026", f);
System.out.println(date.getMonth());
}
}การจัดการข้อมูลนำเข้าที่ไม่ถูกต้อง
หากข้อความไม่ตรงกับรูปแบบ การแปลงจะแจ้งข้อผิดพลาด DateTimeParseException ควรครอบการแปลงที่อาจเกิดข้อผิดพลาดไว้ใน try-catch
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static void main(String[] args) {
DateTimeFormatter f = DateTimeFormatter.ofPattern("dd/MM/yyyy");
try {
LocalDate.parse("not a date", f);
} catch (DateTimeParseException e) {
System.out.println("Invalid date format!");
}
}
}ตัวจัดรูปแบบในตัว
สำหรับการใช้งานทั่วไป คุณสามารถข้ามการกำหนดรูปแบบและใช้ตัวจัดรูปแบบที่กำหนดไว้ล่วงหน้า เช่น DateTimeFormatter.ISO_DATE ได้
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.format(DateTimeFormatter.ISO_DATE));
}
}นำตัวจัดรูปแบบกลับมาใช้ใหม่
DateTimeFormatter ไม่สามารถเปลี่ยนแปลงได้และปลอดภัยสำหรับการใช้งานพร้อมกันหลายเธรด ดังนั้นให้สร้างเพียงครั้งเดียวแล้วนำกลับมาใช้ใหม่ เมื่อมีชื่อเกี่ยวข้อง ควรระบุ Locale เสมอเพื่อให้ผลลัพธ์สอดคล้องกัน
ตรวจสอบความเข้าใจ
ทดสอบความรู้เกี่ยวกับการจัดรูปแบบ
สรุปทบทวน
คุณได้เรียนรู้การจัดรูปแบบวันที่และเวลาดังนี้
DateTimeFormatter.ofPatternใช้กำหนดรูปแบบผลลัพธ์แบบกำหนดเอง- ตัวอักษรจะแทนฟิลด์ต่าง ๆ ได้แก่
yyyy,MM,dd,HH,mm - การเขียนตัวอักษรซ้ำมากขึ้นจะแสดงรูปแบบข้อความ เช่น
MMMMและEEEE - ตัวจัดรูปแบบเดียวกันสามารถแปลงข้อความได้ และจะแจ้งข้อผิดพลาด
DateTimeParseExceptionเมื่อข้อมูลนำเข้าไม่ถูกต้อง - ตัวจัดรูปแบบไม่สามารถเปลี่ยนแปลงได้และนำกลับมาใช้ใหม่ได้ โปรดส่ง
Localeเมื่อมีชื่อเกี่ยวข้อง
คำถามที่พบบ่อย
บทเรียน “การจัดรูปแบบด้วย DateTimeFormatter” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดรูปแบบด้วย DateTimeFormatter” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดรูปแบบด้วย DateTimeFormatter”
แยกวิเคราะห์และจัดรูปแบบวันที่ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดรูปแบบด้วย DateTimeFormatter” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- LocalDate, LocalTime, LocalDateTime
- Instant และ Duration
- Period และการคำนวณวันที่
- การจัดรูปแบบด้วย DateTimeFormatter