Nhiều bạn lập trình viên khi mới bắt đầu xây dựng ứng dụng Java thường bị mắc kẹt trong việc chuyển đổi ngày tháng trong Java từ String sang Date và Date sang String.
Xem thêm: lấy ngày đầu tháng cuối tháng trong java
Hy vọng trong phần hướng dẫn say đây sẽ giúp bạn thực hiện dễ dàng việc chuyển đổi ngày tháng trong Java từ String sang Date hoặc ngược lại từ Date sang String.
Để định dạng ngày tháng trong Java chúng ta sẽ sử dụng đến lớp SimpleDateFormat, lớp SimpleDateFormat thuộc java.text.SimpleDateFormat cung cấp các phương thức để phân tích và chuyển đổi ngày tháng và thời gian trong ứng dụng Java. Lớp SimpleDateFormat kế thừa lớp DateFormat thuộc java.text.DateFormat.
Về cơ bản để chuyển đổi ngày tháng trong Java từ String sang Date và Date sang String sẽ thực hiện như sau:
// String -> Date SimpleDateFormat.parse(String); // Date -> String SimpleDateFormat.format(date);
Trong đó:
- Phương thức SimpleDateFormat.format(java.util.Date date) được sử dụng để chuyển đổi Date sang String.
- Phương thức SimpleDateFormat.parse(String string) được sử dụng để chuyển đổi String sang Date.
Bảng sau liệt kê một số mẫu định dạng ngày và giờ được sử dụng trong lớp SimpleDateFormat:
Ký hiệu | Mô tả | Ví dụ |
y | Năm | 2018 |
M | Tháng trong năm | July, 07, 7 |
d | Ngày trong tháng | 1-31 |
E | Tên ngày trong tuần | Friday, Sunday |
a | Định dạng AM hoặc PM | AM, PM |
H | Giờ trong ngày | 0-23 |
h | Giờ AM hoặc PM | 1-12 |
m | Phút trong giờ | 0-60 |
s | Giây trong phút | 0-60 |
Ví dụ chuyển đổi định dạng Date sang String trong Java:
package test; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /** * * @author TVD */ public class TestStringToDate { public static void main(String[] args) { Date date = new Date(); DateFormat dateFormat = null; dateFormat = new SimpleDateFormat("dd/MM/yyyy"); System.out.println("dd/MM/yyyy: " + dateFormat.format(date)); dateFormat = new SimpleDateFormat("MM/dd/yyyy"); System.out.println("MM/dd/yyyy: " + dateFormat.format(date)); dateFormat = new SimpleDateFormat("hh:mm:ss MM/dd/yyyy"); System.out.println("hh:mm:ss MM/dd/yyyy: " + dateFormat.format(date)); dateFormat = new SimpleDateFormat("HH:mm:ss MM/dd/yyyy"); System.out.println("HH:mm:ss MM/dd/yyyy: " + dateFormat.format(date)); dateFormat = new SimpleDateFormat("HH:mm:ss.SSS MM/dd/yyyy"); System.out.println("HH:mm:ss.SSS MM/dd/yyyy: " + dateFormat.format(date)); dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("HH:mm:ss: " + dateFormat.format(date)); } }
Kết quả sau khi chạy đoạn mã chương trình trên:
dd/MM/yyyy: 19/12/2018 MM/dd/yyyy: 12/19/2018 hh:mm:ss MM/dd/yyyy: 02:02:54 12/19/2018 HH:mm:ss MM/dd/yyyy: 14:02:54 12/19/2018 HH:mm:ss.SSS MM/dd/yyyy: 14:02:54.914 12/19/2018 HH:mm:ss: 14:02:54
Ví dụ chuyển đổi định dạng String sang Date trong Java:
package test; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; /** * * @author TVD */ public class TestDateToString { public static void main(String[] args) throws ParseException { DateFormat dateFormat = null; dateFormat = new SimpleDateFormat("dd/MM/yyyy"); System.out.println("dd/MM/yyyy: " + dateFormat.parse("20/10/2018")); dateFormat = new SimpleDateFormat("MM/dd/yyyy"); System.out.println("MM/dd/yyyy: " + dateFormat.parse("20/10/2018")); dateFormat = new SimpleDateFormat("hh:mm:ss MM/dd/yyyy"); System.out.println("hh:mm:ss MM/dd/yyyy: " + dateFormat.parse("10:00:00 20/10/2018")); dateFormat = new SimpleDateFormat("HH:mm:ss"); System.out.println("HH:mm:ss: " + dateFormat.parse("20:00:00")); } }
Kết quả sau khi chạy đoạn mã chương trình trên:
dd/MM/yyyy: Sat Oct 20 00:00:00 ICT 2018 MM/dd/yyyy: Sat Aug 10 00:00:00 ICT 2019 hh:mm:ss MM/dd/yyyy: Sat Aug 10 10:00:00 ICT 2019 HH:mm:ss: Thu Jan 01 20:00:00 ICT 1970
Lời kết: Trong thời gian tới Team Việt Dev sẽ tiếp tục chia sẻ thêm nhiều bài viết về lập trình Java miễn phí đến bạn đọc, các bạn nhớ theo dõi kênh để có được những chia sẻ mới nhất.
(Tác giả: Team Việt Dev)