0Pricing
Java Academy · บทเรียน

การจัดรูปแบบด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. LocalDate, LocalTime, LocalDateTime
  2. Instant และ Duration
  3. Period และการคำนวณวันที่
  4. การจัดรูปแบบด้วย DateTimeFormatter
← กลับไปที่ Java Academy