Java Ngày và Giờ
Đầu tiên chúng ta hãy hiểu các tham số bao gồm một Ngày.
Nó chủ yếu sẽ chứa -
- Sản phẩm năm (ở dạng 2 hoặc 4 chữ số)
- Sản phẩm tháng (bằng 2 chữ số, 3 chữ cái đầu tháng hoặc toàn bộ từ của tháng).
- Sản phẩm ngày (nó sẽ là ngày thực tế của tháng).
- Sản phẩm ngày (ngày tại ngày đã cho – như Chủ nhật, Thứ Hai, Thứ Ba, v.v.)
Về 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 một ngày. 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 làm thế nào Java cung cấp cho chúng tôi Ngày. Đầu tiên, chúng ta sẽ xem làm thế nào để có được ngày hiện tại-
Java cung cấp lớp Date trong gói java.util. Gói này cung cấp một số phương thức để xử lý 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 constructor Date 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 và định dạng ngày tháng
Chắc hẳn các bạn đã học bảng chữ cái ở trường mẫu giáo….
Bây giờ chúng ta hãy tìm hiểu định dạng ngày của ABC.
Bức thư | Thành phần ngày hoặc giờ | Các ví dụ |
---|---|---|
G | Người chỉ định thời đại | AD |
y | Năm | 2018 |
M | Tháng trong năm | Tháng 07 hoặc tháng XNUMX hoặc XNUMX |
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 = Monday, …, 7 = Chủ Nhật) | 1 |
a | Điểm đánh dấu sáng/chiều | PM |
H | Giờ trong ngày (0-23) | 0 |
k | Giờ trong ngày (1-24) | 24 |
K | Giờ tính bằng sáng/chiều (0-11) | 0 |
h | Giờ tính bằng sáng/chiều (1-12) | 12 |
m | Phút trong giờ | 30 |
s | Thứ hai trong 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 cách nào để sử dụng SimpleDateFormat?
Java cung cấp một lớp có tên SimpleDateFormat cho phép bạn định dạng và phân tích 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) Yêu cầu định dạng ngày: 2012.10.23/20/20 45:XNUMX:XNUMX giờ chuẩn Thái Bình Dương
Định dạng ngày thích hợp được chỉ định sẽ là- yyyy.MM.dd HH:mm:ss zzz
2) Yêu cầu định dạng ngày:09:30:00 AM 23-May-2012
Định dạng ngày thích hợp được chỉ định sẽ là-hh:mm:ss và dd-MMM-yyyy
Mẹo: Hãy cẩn thận với việc viết hoa chữ cái. Nếu nhầm M với m, bạn sẽ nhận được kết quả không mong muốn!
Hãy tìm hiểu điều này với một ví dụ về 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 objDate System.out.println(objDate); String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date } }
Đầu ra:
Wed Nov 29 06:31:41 UTC 2017 06:31:41 AM 29-Nov-2017
So sánh ngày Ví dụ
Phương pháp so sánh ngày tháng hữu ích nhất là sử dụng phương thức – so sánhTo()
Chúng ta hãy xem đ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-1981 Date2 : 12-10-2012 Date 1 occurs before Date 2