Lớp java.text.SimpleDateFormat được dùng để định dạng và phân tích chuỗi thành ngày và ngược lại.
- Một trong các constructor của lớp này chấp nhận một giá trị String đại diện cho định dạng ngày mong muốn và tạo đối tượng SimpleDateFormat.
- Để phân tích/chuyển đổi một chuỗi thành đối tượng Date, khởi tạo lớp này bằng cách truyền chuỗi định dạng mong muốn.
- Phân tích chuỗi ngày bằng phương thức
parse(). - Bạn có thể lấy thời gian epoch (số mili-giây từ 1/1/1970) bằng phương thức
getTime().
Ví dụ: Sử dụng SimpleDateFormat
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
public static void main(String args[]) throws ParseException {
// Khởi tạo lớp SimpleDateFormat
SimpleDateFormat dateformatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
// Phân tích chuỗi cho trước thành đối tượng Date
String str = "25-08-2009 11:20:45";
Date date = dateformatter.parse(str);
long msec = date.getTime();
System.out.println("Epoch của ngày cho trước: " + msec);
}
}
Kết quả
Epoch của ngày cho trước: 1251179445000
Ví dụ: Sử dụng lớp Calendar
Bạn có thể đặt giá trị ngày và giờ cho đối tượng Calendar bằng phương thức set(). Phương thức getTimeInMillis() của lớp này trả về epoch time của giá trị ngày.
import java.util.Calendar;
public class Sample {
public static void main(String args[]) {
Calendar cal = Calendar.getInstance();
cal.set(2014, 9, 11, 10, 25, 30);
long msec = cal.getTimeInMillis();
System.out.print(msec);
}
}
Kết quả
1413003330758
Ví dụ: Sử dụng ZonedDateTime (Java 8+)
Bạn có thể đặt giá trị ngày và giờ cho đối tượng ZonedDateTime bằng phương thức of(). Phương thức toEpochMilli() của lớp Instant trả về epoch time.
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Sample {
public static void main(String args[]) {
// Tạo đối tượng ZonedDateTime
ZoneId id = ZoneId.of("Asia/Kolkata");
ZonedDateTime obj = ZonedDateTime.of(2014, 9, 11, 10, 25, 30, 22, id);
Instant instant = obj.toInstant();
long msec = instant.toEpochMilli();
System.out.println("Mili-giây: " + msec);
}
}
Kết quả
Mili-giây: 1410411330000