คลาส SimpleDateFormat ใช้แปลงสตริง↔วันที่ Constructor รับ pattern string แล้วใช้ parse() แปลงสตริงเป็น Date
ขั้นตอน
- สร้าง SimpleDateFormat ด้วย pattern ที่ต้องการ
- ใช้
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 | วันที่มาตรฐาน ISO | 2024-01-15 |
| dd/MM/yyyy | วันที่แบบไทย/ยุโรป | 15/01/2024 |
| MM/dd/yyyy | วันที่แบบ US | 01/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);
}
}