Java cung cấp lớp Date trong gói java.util, lớp này đóng gói thông tin về ngày và giờ hiện tại. Tiếp tục theo dõi nội dung bài viết để tìm hiểu về Ngày tháng (Date & Time) trong Java.
Xâm nhập vào Ngày tháng (Date & Time) trong Java
Lớp Date trong Java có hỗ trợ 2 constructor như mô tả dưới đây:
Dưới đây là bảng liệt kê các phương thức của lớp Date trong Java:
Nắm bắt ngày tháng (date & time) hiện tại trong Java
Để lấy ngày tháng (date & time) hiện tại trong Java là một công việc đơn giản. Sử dụng đối tượng Date cùng phương thức toString() để hiển thị ngày tháng hiện tại.
Ví dụ:
Trong ví dụ này, kết quả đầu ra là:
vào ngày 04 tháng 05 lúc 09:51:52 CDT năm 2009
So sánh Date trong Java
Dưới đây là 3 phương pháp để so sánh 2 đối tượng Date trong Java:
- Sử dụng phương thức getTime( ) để lấy số mili giây tính từ nửa đêm ngày 1/1/1970 cho cả 2 đối tượng, sau đó so sánh 2 giá trị này.
- Sử dụng các phương thức before( ), after( ), và equals( ). Ví dụ, nếu bạn muốn kiểm tra liệu ngày 12 có đứng trước ngày 18 hay không, bạn có thể sử dụng lệnh new Date(99, 2, 12).before(new Date (99, 2, 18)) , kết quả sẽ là True.
- Sử dụng phương thức compareTo(), được định nghĩa bởi giao diện Comparable và được triển khai bởi lớp Date.
Format Date bằng SimpleDateFormat
SimpleDateFormat là một lớp cụ thể giúp bạn định dạng và phân tích date theo phương thức nhạy cảm với ngôn ngữ địa phương. Bạn có thể bắt đầu bằng cách chọn một mẫu do người dùng xác định để định dạng date-time.
Ví dụ:
Trong ví dụ này, kết quả đầu ra sẽ là:
Ngày hiện tại: Chủ Nhật 2004.07.18 lúc 04:14:09 PM PDT
Mã hóa định dạng DateFormat
Để xác định định dạng DateFormat trong Java, sử dụng chuỗi mô tả thời gian. Trong mẫu này, tất cả các ký tự ASCII được giữ lại dưới dạng các ký tự mô tả thời gian, được định nghĩa trong bảng dưới đây:
Định dạng Date bằng printf trong Java
Một cách đơn giản khác để định dạng ngày và giờ trong Java là sử dụng phương thức printf. Bạn chỉ cần sử dụng một định dạng hai chữ cái, bắt đầu bằng t và kết thúc bằng một trong các ký tự trong bảng dưới.
Ví dụ:
Trong ví dụ này, kết quả đầu ra sẽ là:
Ngày/Giờ hiện tại : Thứ Bảy Tháng Mười Hai 15 16:37:57 MST 2012
Việc cung cấp ngày nhiều lần để định dạng từng phần có thể tốn thời gian. Do đó, bạn có thể sử dụng một chuỗi định dạng để chỉ định chỉ mục của tham số cần định dạng.
Chỉ số phải ngay lập tức theo sau % và phải được kết thúc bằng một dấu $.
Ví dụ:
Kết quả đầu ra từ ví dụ này là:
Hạn chót: 09 Tháng 2, 2004
Ngoài ra, bạn có thể sử dụng ký hiệu dấu nhỏ hơn. Ký hiệu này chỉ định tham số tương tự như trong định dạng trước đó.
Ví dụ:
Kết quả đầu ra từ ví dụ này là:
Hạn chót: 09 Tháng 2, 2004
Các ký tự chuyển đổi Date và Time trong Java
Dưới đây là bảng danh sách các ký tự chuyển đổi Date và Time trong Java:
Ngoài ra, còn có một số lớp hữu ích khác liên quan đến Date và Time.
Phương thức parse( ) trong lớp Date
Lớp SimpleDateFormat còn cung cấp một số phương thức bổ sung khác, trong đó phải kể đến là parse( ), để phân tích một chuỗi theo định dạng được lưu giữ trong đối tượng SimpleDateFormat đã cho.
Ví dụ:
Chạy chương trình và kết quả trả về sẽ là:
1818-11-11 Pars như là Thứ Tư, 11 Tháng 11 00:00:00 EST 1818
Thiết lập chương trình nghỉ trong khoảng thời gian cụ thể trong Java
Bạn có thể tạm dừng bất kỳ khoảng thời gian nào từ một mili giây cho đến một chu kỳ máy tính.
Ví dụ, đoạn chương trình dưới đây sẽ nghỉ trong 3 giây:
Kết quả trả về trong ví dụ trên là:
Chủ Nhật, 03 Tháng 05 18:04:41 GMT 2009
Chủ Nhật, 03 Tháng 05 18:04:51 GMT 2009
Đo thời gian đã trôi qua trong Java
Trong một số trường hợp, bạn cần đo thời gian tại một điểm cụ thể bằng giá trị mili giây.
Trong ví dụ trên sẽ được viết lại như sau:
Kết quả trả về trong ví dụ là:
Chủ Nhật, 03 Tháng 05 18:16:51 GMT 2009
Chủ Nhật, 03 Tháng 05 18:16:57 GMT 2009
Hiệu suất là: 5993
Lớp GregorianCalendar
Lớp GregorianCalendar là một bổ sung cho lớp Calendar, triển khai lịch Gregorian theo cách đúng. Tuy nhiên, trong bài viết này, Mytour không đề cập đến lớp Calendar. Bạn có thể tìm kiếm thông tin liên quan đến lớp Calendar trong Java trên mạng để biết thêm chi tiết.
Phương thức getInstance() của Calendar trả về một GregorianCalendar được khởi tạo với ngày và giờ hiện tại theo miền và múi giờ mặc định. GregorianCalendar định nghĩa hai trường: AD và BC, biểu diễn hai thời kỳ được định nghĩa bởi GregorianCalendar.
Ngoài ra, có một số constructor khác cho đối tượng GregorianCalendar:
Dưới đây là danh sách các phương thức hữu ích mà lớp GregorianCalendar hỗ trợ:
Ví dụ:
Kết quả đầu ra của ví dụ là:
Ngày: 22 Tháng 4 2009
Giờ: 11:25:27
Năm hiện tại không phải là năm nhuận
Trong bài viết trên Mytour, bạn đã được cung cấp thông tin đầy đủ về xử lý ngày tháng (date & time) trong Java. Ngoài ra, bạn cũng có thể tham khảo thêm một số bài viết khác về Java như các vòng lặp trong Java, cú pháp cơ bản,... mà Mytour đã chia sẻ.