Nhiều bạn khi lập trình Java thường bị vướng mắc ở chỗ chuyển đổi từ String sang Date trong Java, với bài viết này mình sẽ hướng dẫn convert String to Date trong Java mong rằng giúp các bạn có thể khắc phục được vấn đề vừa nêu.
1 2 3 4 5 | // String -> Date SimpleDateFormat.parse(String); // Date -> String SimpleDateFormat.format(date); |
1. SimpleDateFormat trong Java
Sử dụng lớp SimpleDateFormat để có thể convert String to Date trong Java, sau đây là một số thuộc tính lớp SimpleDateFormat trong Java bạn cần ghi nhớ:
Mã | Mô tả | Kiểu dữ liệu | Ví dụ |
---|---|---|---|
G | Era designator | Text | AD |
y | Year | Year | 1996 ; 96 |
Y | Week year | Year | 2009 ; 09 |
M | Month in year (context sensitive) | Month | July ; Jul ; 07 |
L | Month in year (standalone form) | Month | July ; Jul ; 07 |
w | Week in year | Number | 27 |
W | Week in month | Number | 2 |
D | Day in year | Number | 189 |
d | Day in month | Number | 10 |
F | Day of week in month | Number | 2 |
E | Day name in week | Text | Tuesday ; Tue |
u | Day number of week (1 = Monday, …, 7 = Sunday) | Number | 1 |
a | Am/pm marker | Text | PM |
H | Hour in day (0-23) | Number | 0 |
k | Hour in day (1-24) | Number | 24 |
K | Hour in am/pm (0-11) | Number | 0 |
h | Hour in am/pm (1-12) | Number | 12 |
m | Minute in hour | Number | 30 |
s | Second in minute | Number | 55 |
S | Millisecond | Number | 978 |
z | Time zone | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z | Time zone | RFC 822 time zone | -0800 |
X | Time zone | ISO 8601 time zone | -08 ; -0800 ; -08:00 |
2. Ví dụ convert String to Date trong Java
Sau đây là một vài ví dụ mô phỏng sử dụng lớp SimpleDateFormat trong Java để convert String to Date.
Ví dụ 1: convert chuỗi String sang Date định dạng dd-MM-yyyy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package covertstringtodate; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * * @author TUNGDUONG */ public class Main { public static void main(String[] args) { SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); String dateInString = "20-11-2017"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } } |
Kết quả sau khi chạy đoạn mã chương trình trên:
1 2 | Mon Nov 20 00:00:00 ICT 2017 20-11-2017 |
Ví dụ 2: convert chuỗi String sang Date định dạng HH:mm:ss dd-MM-yyyy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package covertstringtodate; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * * @author TUNGDUONG */ public class Main { public static void main(String[] args) { SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss dd-MM-yyyy"); String dateInString = "10:00:00 20-11-2017"; try { Date date = formatter.parse(dateInString); System.out.println(date); System.out.println(formatter.format(date)); } catch (ParseException e) { e.printStackTrace(); } } } |
Kết quả sau khi chạy đoạn mã chương trình trên:
1 2 | Mon Nov 20 10:00:00 ICT 2017 10:00:00 20-11-2017 |
Các bạn có thể tham khảo thêm phần định dạng ngày tháng năm trong Java để hiểu rõ hơn về SimpleDateFormat.
Lời kết: Như vậy mình vừa hướng dẫn convert String to Date trong Java bằng cách sử dụng sử dụng lớp SimpleDateFormat. Ngoài ra bạn có thể xem thêm một số bài viết khác trong chuyên mục Java cơ bản và Java nâng cao tại Kênh Lập Trình.
(Tác giả: Tùng Dương)