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.

Cách sử dụng Ngày trong Java

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ụ

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