Trong hướng dẫn này, bạn sẽ học -
- Hiển thị ngày hiện tại trong Java
- SimpleDateFormat: Phân tích cú pháp và định dạng ngày
- So sánh ngày Ví dụ
Trước tiên, hãy để chúng tôi hiểu các tham số bao gồm Ngày .
Nó chủ yếu sẽ chứa -
- Các năm (trong 2 hoặc 4 chữ số)
- Các tháng (trong hoặc 2 chữ số, First 3 chữ cái của tháng hoặc toàn bộ từ tháng).
- Các ngày (nó sẽ là ngày thực tế của tháng).
- Các ngày (ngày tại thời điểm nhất định - như Sun, Mon, Tue, vv)
Liên quan đến hệ thống máy tính, có khá nhiều tham số có thể được sử dụng để liên kết với ngày tháng. Chúng ta sẽ thấy chúng trong các phần sau của chủ đề này.
Ngày hiển thị trong Java
Bây giờ chúng ta hãy xem cách Java cung cấp cho chúng ta Ngày tháng. Đầu tiên, chúng ta sẽ xem cách lấy ngày hiện tại-
Java cung cấp một lớp Ngày trong gói java.util, Gói này cung cấp một số phương thức để chơi với ngày.
Bạn có thể sử dụng đối tượng Date bằng cách gọi hàm tạo của lớp Date như sau:
import java.util.Date;class Date_Ex1 {public static void main(String args[]) {// Instantiate a Date object by invoking its constructorDate objDate = new Date();// Display the Date & Time using toString()System.out.println(objDate.toString());}}
Đầu ra:
Wed Nov 29 06:36:22 UTC 2017
Trong ví dụ trên, ngày được hiển thị ở định dạng mặc định, Nếu chúng ta muốn hiển thị ngày và giờ ở định dạng khác, trước tiên hãy hiểu Định dạng ngày.
SimpleDateFormat: Phân tích cú pháp và định dạng ngày
Chắc hẳn tất cả các bạn đều đã học bảng chữ cái ở trường mẫu giáo của mình
….Bây giờ chúng ta hãy tìm hiểu ABC của định dạng ngày.
Lá thư | Thành phần ngày hoặc giờ | Các ví dụ |
---|---|---|
G | Người chỉ định kỷ nguyên | QUẢNG CÁO |
y | Năm | 2018 |
M | Tháng trong năm | Tháng bảy hoặc tháng bảy hoặc 07 |
w | Tuần trong năm | 27 |
W | Tuần trong tháng | 2 |
D | Ngày trong năm | 189 |
d | Ngày trong tháng | 10 |
F | Ngày trong tuần trong tháng | 2 |
E | Tên ngày trong tuần | Thứ ba hoặc thứ ba |
u | Số ngày trong tuần (1 = Thứ Hai,…, 7 = Chủ Nhật) | 1 |
a | Điểm đánh dấu am / pm | BUỔI CHIỀU |
H | Giờ trong ngày (0-23) | 0 |
k | Giờ trong ngày (1-24) | 24 |
K | Giờ sáng / chiều (0-11) | 0 |
h | Giờ sáng / chiều (1-12) | 12 |
m | Phút sau giờ | 30 |
S | Giây sau phút | 55 |
S | Mili giây | 978 |
z | Múi giờ | Múi giờ Thái Bình Dương; PST; GMT-08: 00 |
Z | Múi giờ | -0800 |
X | Múi giờ | -08 hoặc -0800 hoặc -08: 00 |
Đừng lo lắng, bạn không cần phải nhớ tất cả những điều này, chúng có thể được giới thiệu bất cứ lúc nào bạn cần định dạng một ngày cụ thể.
Làm thế nào để sử dụng SimpleDateFormat?
Java cung cấp một lớp được gọi là SimpleDateFormat cho phép bạn định dạng và phân tích cú pháp ngày tháng theo yêu cầu của bạn.
Bạn có thể sử dụng các ký tự trên để chỉ định định dạng - Ví dụ:
1) Định dạng ngày bắt buộc: 2012.10.23 20:20:45 PST
Định dạng ngày thích hợp được chỉ định sẽ là- yyyy.MM.dd HH: mm: ss zzz
2) Định dạng ngày bắt buộc: 09:30:00 AM 23-05-2012
Định dạng ngày thích hợp được chỉ định sẽ là- hh: mm: ss a dd-MMM-yyyy
Mẹo: Hãy cẩn thận với cách viết hoa chữ cái. Nếu bạn nhầm M với m, bạn sẽ có kết quả không như mong muốn!
Hãy tìm hiểu điều này với một ví dụ mã.
import java.text.SimpleDateFormat;import java.util.Date;class TestDates_Format {public static void main(String args[]) {Date objDate = new Date(); // Current System Date and time is assigned to objDateSystem.out.println(objDate);String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is SpecifiedSimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format objectSystem.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date}}
Đầu ra:
Wed Nov 29 06:31:41 UTC 201706:31:41 AM 29-Nov-2017
So sánh ngày Ví dụ
Phương pháp so sánh ngày hữu ích nhất là sử dụng phương thức - CompareTo ()
Hãy để chúng tôi xem qua đoạn mã dưới đây-
import java.text.SimpleDateFormat;import java.text.ParseException;import java.util.Date;class TestDates_Compare {public static void main(String args[]) throws ParseException {SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");Date dt_1 = objSDF.parse("20-08-1981");Date dt_2 = objSDF.parse("12-10-2012");System.out.println("Date1 : " + objSDF.format(dt_1));System.out.println("Date2 : " + objSDF.format(dt_2));if (dt_1.compareTo(dt_2)> 0) {System.out.println("Date 1 occurs after Date 2");} // compareTo method returns the value greater than 0 if this Date is after the Date argument.else if (dt_1.compareTo(dt_2) < 0) {System.out.println("Date 1 occurs before Date 2");} // compareTo method returns the value less than 0 if this Date is before the Date argument;else if (dt_1.compareTo(dt_2) == 0) {System.out.println("Both are same dates");} // compareTo method returns the value 0 if the argument Date is equal to the second Date;else {System.out.println("You seem to be a time traveller !!");}}}Đầu ra:
Date1 : 20-08-1981Date2 : 12-10-2012Date 1 occurs before Date 2