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.
Phân tích chuỗi ngày
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().
Dưới đây là danh sách các ký tự định dạng với mô tả và ví dụ:
| Ký tự | Thành phần | Ví dụ |
|---|---|---|
| G | Chỉ định kỷ nguyên (Era) | AD, BC |
| y | Năm | 2005, 96 |
| Y | Năm tuần | 2005, 96 |
| M | Tháng trong năm | September, Sep, 09 |
| L | Tháng trong năm (standalone) | September, Sep, 09 |
| w | Tuần trong năm | 23 |
| W | Tuần trong tháng | 3 |
| D | Ngày trong năm | 129 |
| d | Ngày trong tháng | 27 |
| F | Ngày của tuần trong tháng | 5 |
| E | Ngày trong tuần (tên) | Monday, Mon |
| u | Ngày trong tuần (số) | 1 |
| a | AM/PM | PM, AM |
| H | Giờ trong ngày (0-23) | 0, 22 |
| k | Giờ trong ngày (1-24) | 1, 12, 24 |
| K | Giờ trong am/pm (0-11) | 0, 5, 11 |
| h | Giờ trong am/pm (1-12) | 1, 5, 12 |
| m | Phút trong giờ | 25 |
| s | Giây trong phút | 24 |
| S | Mili-giây | 756 |
| z | Múi giờ | PST, GMT |
| Z | Múi giờ (RFC 822) | -0500 |
| X | Múi giờ (ISO 8601) | -06, -0600, -06:00 |
Ví dụ 1
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
public static void main(String args[]) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy/dd/MM");
Date date = formatter.parse("2007/25/06");
System.out.println("Giá trị ngày: " + date);
formatter = new SimpleDateFormat("y:G");
date = formatter.parse("1920:BC");
System.out.println("Giá trị ngày: " + date);
formatter = new SimpleDateFormat("D-M-Y");
date = formatter.parse("25-05-1989");
System.out.println("Giá trị ngày: " + date);
}
}
Kết quả
Giá trị ngày: Mon Jun 25 00:00:00 IST 2007 Giá trị ngày: Sun Jan 01 00:00:00 IST 1920 Giá trị ngày: Sun Jan 01 00:00:00 IST 1989
Ví dụ 2: Định dạng thời gian
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Sample {
public static void main(String args[]) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("HH:mm:ss");
Date time1 = formatter1.parse("07:25:30");
System.out.println("Giá trị ngày: " + time1);
SimpleDateFormat formatter2 = new SimpleDateFormat("EEE:MMM-d:YYYY");
Date time2 = formatter2.parse("Sun:Jan-8:2018");
System.out.println("Giá trị ngày: " + time2);
SimpleDateFormat formatter3 = new SimpleDateFormat("hh 'o''clock' a");
Date time3 = formatter3.parse("09 o'clock AM");
System.out.println("Giá trị ngày: " + time3);
}
}
Kết quả
Giá trị ngày: Thu Jan 01 07:25:30 IST 1970 Giá trị ngày: Sun Dec 31 00:00:00 IST 2017 Giá trị ngày: Thu Jan 01 09:00:00 IST 1970