Có hai lớp để định dạng ngày trong java: DateFormat và SimpleDateFormat.
Lớp java.text.DateFormat trong java cung cấp các phương thức khác nhau để định dạng và phân tích ngày tháng và thời gian trong java. Lớp DateFormat là một lớp trừu tượng. java.text.Format là lớp cha và java.text.SimpleDateFormat là lớp con của lớp java.text.DateFormat.
Lưu ý: rằng định dạng (format) có nghĩa là chuyển đổi date thành string và phân tích (parse) có nghĩa là chuyển đổi string thành date.
Để đị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ụ về DateFormat trong java – chuyển đổi date thành string
Dưới đây là ví dụ định dạng date và time trong java bằng việc sử dụng lớp java.text.DateFormat:
import java.text.DateFormat;
import java.util.Date;
public class DateFormatExample1 {
public static void main(String[] args) {
Date currentDate = new Date();
System.out.println("Date hien tai: " + currentDate);
String dateToStr = DateFormat.getInstance().format(currentDate);
System.out.println("Date Format su dung getInstance(): " + dateToStr);
}
}
Code language: JavaScript (javascript)
Output:
Date hien tai: Mon Sep 11 10:32:45 ICT 2017
Date Format su dung getInstance(): 17/09/11 10:32
Code language: JavaScript (javascript)
Dưới đây là ví dụ đầy đủ về định dạng date và time trong java bằng việc sử dụng lớp java.text.DateFormat:
import java.text.DateFormat;
import java.util.Date;
public class DateFormatExample2 {
public static void main(String[] args) {
Date currentDate = new Date();
System.out.println("Date hien tai: " + currentDate);
String dateToStr = DateFormat.getInstance().format(currentDate);
System.out.println("Su dung getInstance(): " + dateToStr);
dateToStr = DateFormat.getDateInstance().format(currentDate);
System.out.println("Su dung getDateInstance(): " + dateToStr);
dateToStr = DateFormat.getTimeInstance().format(currentDate);
System.out.println("Su dung getTimeInstance(): " + dateToStr);
dateToStr = DateFormat.getDateTimeInstance().format(currentDate);
System.out.println("Su dung getDateTimeInstance(): " + dateToStr);
dateToStr = DateFormat.getTimeInstance(DateFormat.SHORT)
.format(currentDate);
System.out.println("Su dung getTimeInstance(DateFormat.SHORT): "
+ dateToStr);
dateToStr = DateFormat.getTimeInstance(DateFormat.MEDIUM)
.format(currentDate);
System.out.println("Su dung getTimeInstance(DateFormat.MEDIUM): "
+ dateToStr);
dateToStr = DateFormat.getTimeInstance(DateFormat.LONG)
.format(currentDate);
System.out.println("Su dung getTimeInstance(DateFormat.LONG): "
+ dateToStr);
dateToStr = DateFormat.getDateTimeInstance(DateFormat.LONG,
DateFormat.SHORT).format(currentDate);
System.out.println("Su dung "
+ "getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT): "
+ dateToStr);
}
}
Code language: JavaScript (javascript)
Output
Date hien tai: Mon Sep 11 10:36:12 ICT 2017
Su dung getInstance(): 17/09/11 10:36
Su dung getDateInstance(): 2017/09/11
Su dung getTimeInstance(): 10:36:12
Su dung getDateTimeInstance(): 2017/09/11 10:36:12
Su dung getTimeInstance(DateFormat.SHORT): 10:36
Su dung getTimeInstance(DateFormat.MEDIUM): 10:36:12
Su dung getTimeInstance(DateFormat.LONG): 10:36:12 ICT
Su dung getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT): 2017/09/11 10:36
Code language: JavaScript (javascript)
Ví dụ về DateFormat trong java – chuyển đổi string thành date
Dưới đây là ví dụ chuyển đối string thành date trong java bằng việc sử dụng lớp java.text.DateFormat:
import java.text.DateFormat;
import java.util.Date;
public class DateFormatExample3 {
public static void main(String[] args) throws Exception {
Date date = DateFormat.getDateInstance().parse("2017/11/09");
System.out.println("Date: " + date);
}
}
Code language: JavaScript (javascript)
Output:
Date: Thu Nov 09 00:00:00 ICT 2017
Code language: CSS (css)