มีหลายวิธีในการดึงเวลาปัจจุบันเป็นมิลลิวินาที (epoch milliseconds) ใน Java
วิธีที่ 1: ใช้ java.util.Date
เมธอด getTime() ของคลาส Date คืนค่า epoch time (มิลลิวินาทีจาก 1 ม.ค. 1970 00:00:00 GMT)
import java.util.Date;
public class Sample {
public static void main(String args[]) {
Date date = new Date();
long msec = date.getTime();
System.out.println("Milli Seconds: " + msec);
}
}
Milli Seconds: 1605160094688
วิธีที่ 2: ใช้ java.util.Calendar
เมธอด getTimeInMillis() ของ Calendar คืนค่าเวลาปัจจุบันเป็นมิลลิวินาที
import java.util.Calendar;
public class Sample {
public static void main(String args[]) {
Calendar cal = Calendar.getInstance();
long msec = cal.getTimeInMillis();
System.out.println("Milli Seconds: " + msec);
}
}
Milli Seconds: 1605160934357
วิธีที่ 3: ใช้ java.time.Instant (Java 8+)
เมธอด toEpochMilli() ของ Instant คืนค่ามิลลิวินาทีจาก epoch (แนะนำสำหรับโปรเจกต์ใหม่)
import java.time.Instant;
import java.time.ZonedDateTime;
public class Sample {
public static void main(String args[]) {
ZonedDateTime obj = ZonedDateTime.now();
Instant instant = obj.toInstant();
long msec = instant.toEpochMilli();
System.out.println("Milli Seconds: " + msec);
}
}
Milli Seconds: 1605162474464
วิธีที่ 4: ใช้ System.currentTimeMillis() (ง่ายที่สุด)
public class Sample {
public static void main(String args[]) {
long msec = System.currentTimeMillis();
System.out.println("Milli Seconds: " + msec);
}
}
ตารางเปรียบเทียบ
| วิธี | เวอร์ชัน | คำแนะนำ |
|---|---|---|
| System.currentTimeMillis() | Java 1.0+ | เร็วที่สุด เหมาะสำหรับ benchmarking |
| Instant.now().toEpochMilli() | Java 8+ | แนะนำสำหรับโค้ดใหม่ ใช้งานง่าย รองรับ time API สมัยใหม่ |
| Date.getTime() | Java 1.1+ | Legacy ไม่แนะนำใช้ใหม่ |
| Calendar.getTimeInMillis() | Java 1.1+ | Legacy ไม่ thread-safe |