คลาส java.text.SimpleDateFormat ใช้จัดรูปแบบและแปลงสตริงเป็นวันที่ และวันที่เป็นสตริง
ขั้นตอนการแปลงมิลลิวินาทีเป็นวันที่
- สร้างรูปแบบฟอร์แมต เช่น
dd MMM yyyy HH:mm:ss:SSS Z - สร้างอ็อบเจกต์ Date จากมิลลิวินาที ด้วย constructor
new Date(millis) - จัดรูปแบบวันที่ด้วยเมธอด format()
ตัวอย่าง 1: ใช้ SimpleDateFormat
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
public static void main(String args[]) throws ParseException {
long msec = 3550154;
// กำหนดรูปแบบการแสดงผล
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss:SSS Z");
// สร้าง Date จากมิลลิวินาที
Date date = new Date(msec);
System.out.println("Date value: " + dateFormatter.format(date));
}
}
ผลลัพธ์
Date value: 01 Jan 1970 06:29:10:154 +0530
ตัวอย่าง 2: ใช้ Calendar และ Date
import java.util.Calendar;
import java.util.Date;
public class Sample {
public static void main(String args[]) {
Calendar calendar = Calendar.getInstance();
long msec = calendar.getTimeInMillis();
Date obj = new Date(msec);
System.out.println(obj);
}
}
ผลลัพธ์
Wed Nov 11 22:04:59 IST 2020
ตัวอย่าง 3: ใช้ Java 8 Time API (แนะนำ)
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Sample {
public static void main(String args[]) {
long msec = 3550154;
// แปลงเป็น Instant แล้วไปยัง ZonedDateTime
Instant instant = Instant.ofEpochMilli(msec);
ZonedDateTime zdt = instant.atZone(ZoneId.of("Asia/Bangkok"));
// จัดรูปแบบการแสดงผล
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss:SSS z");
System.out.println("Date value: " + zdt.format(formatter));
}
}
รูปแบบวันที่ที่ใช้บ่อย (DateTimeFormatter patterns)
| Pattern | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| yyyy-MM-dd | วันที่มาตรฐาน ISO | 2024-01-15 |
| dd/MM/yyyy | วันที่แบบไทย | 15/01/2024 |
| HH:mm:ss | เวลา 24 ชั่วโมง | 14:30:45 |
| hh:mm:ss a | เวลา 12 ชั่วโมง AM/PM | 02:30:45 PM |
| EEEE | ชื่อวันเต็ม | Monday |
| MMMM | ชื่อเดือนเต็ม | January |