Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีจัดรูปแบบสตริงวันที่ด้วย SimpleDateFormat ใน Java


คลาส SimpleDateFormat ใช้แปลงสตริง↔วันที่ Constructor รับ pattern string แล้วใช้ parse() แปลงสตริงเป็น Date

ขั้นตอน

  1. สร้าง SimpleDateFormat ด้วย pattern ที่ต้องการ
  2. ใช้ parse(String) แปลงสตริงเป็น Date

ตัวอย่าง

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Sample {
    public static void main(String args[]) throws ParseException {
        String dateString = "2007-25-06";
        
        // Pattern: yyyy-dd-MM (ปี-วัน-เดือน)
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");
        
        Date date = formatter.parse(dateString);
        System.out.println("Date value: " + date);
    }
}

ผลลัพธ์

Date value: Mon Jun 25 00:00:00 IST 2007

Pattern Letters ที่ใช้บ่อย

Patternความหมายตัวอย่าง
yyyy-MM-ddวันที่มาตรฐาน ISO2024-01-15
dd/MM/yyyyวันที่แบบไทย/ยุโรป15/01/2024
MM/dd/yyyyวันที่แบบ US01/15/2024
dd MMM yyyyวันที่พร้อมชื่อเดือนย่อ15 Jan 2024
EEEE, dd MMMM yyyyเต็มรูปแบบMonday, 15 January 2024

⚠️ ข้อควรระวัง

  • SimpleDateFormat ไม่ Thread-Safe - สร้าง instance ใหม่ทุกครั้ง หรือใช้ ThreadLocal
  • Pattern ตัวพิมพ์เล็ก/ใหญ่ มีความหมายต่างกัน (MM=เดือน, mm=นาที)
  • Java 8+ ควรใช้ DateTimeFormatter แทน (immutable, thread-safe)

ตัวอย่าง DateTimeFormatter (Java 8+)

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class ModernExample {
    public static void main(String args[]) {
        String dateString = "2007-25-06";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-dd-MM");
        LocalDate date = LocalDate.parse(dateString, formatter);
        System.out.println("Date value: " + date);
    }
}