Ngày Java & Thời gian: SimpleDateFormat, Current Date & So sánh

Mục lục:

Anonim

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