Java cung cấp lớp Date có sẵn trong gói java.util, lớp này đóng gói ngày và giờ hiện tại. Tham khảo tiếp nội dung bài viết để tìm hiểu ngày tháng (Date & Time) trong Java nhé.
Ngày tháng (Date & Time) trong Java
Lớp Date trong Java hỗ trợ 2 constructor trong bảng dưới đây:
Dưới đây là bảng danh sách các phương thức của lớp Date trong Java:
Lấy 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 khá đơn giản. Bạn có thể sử dụng đối tượng Date với phương thức toString() để in ngày tháng hiện tại.
Ví dụ:
Trong ví dụ trên trả về kết quả đầu ra là:
on May 04 09:51:52 CDT 2009
So sánh Date trong Java
Dưới đây là 3 cách để so sánh 2 Date trong Java:
- Bạn có thể sử dụng getTime( ) để lấy số mili giây đã trôi qua kể từ nửa đêm ngày 1/1/1970 cho cả 2 đối tượng sau đó so sánh 2 giá trị này.
- Bạn có thể sử dụng các phương thức before( ), after( ), và equals( ). Vì ngày 12 đứng trước ngày 18 nên lệnh new Date(99, 2, 12).before(new Date (99, 2, 18)) sẽ trả về giá trị True.
- Bạn có thể sử dụng phương thức compareTo(),được định nghĩa bởi Comparable interface và được thi hành bởi Date.
Định dạng Date bằng SimpleDateFormat
SimpleDateFormat là lớp cụ thể (concrete class) để định dạng và phân tích date theo phương thức nhạy cảm với locale. SimpleDateFormat cho phép bạn bắt đầu bằng cách chọn pattern bất kỳ được định nghĩa bởi người dùng cho định dạng date-time.
Ví dụ:
Trong ví dụ trên sẽ trả về kết quả đầu ra là:
Current Date: Sun 2004.07.18 at 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 pattern này, tất cả các ký tự ASCII được giữ lại dưới dạng các ký tự pattern, được định nghĩa trong bảng dưới đây:
Định dạng Date bằng printf trong Java
Cách đơn giản khác để định dạng date và time trong Java là sử dụng phương thức printf. Bạ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ụ trên kết quả đầu ra trả về là:
Current Date/Time : Sat Dec 15 16:37:57 MST 2012
Sẽ hơi mất thời gian một chút nếu bạn phải cung cấp date nhiều lần để định dạng từng phần. Vì vậy một chuỗi định dạng có thể chỉ dẫn chỉ mục của tham số được định dạng.
Chỉ số phải ngay lập tức theo sau % và nó phải được kết thúc bằng một dấu $.
Ví dụ:
Kết quả đầu ra được trả về từ ví dụ trên là:
Due date: February 09, 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ỉ dẫn tham số tương tự như trong định dạng trước.
Ví dụ:
Kết quả đầu ra được trả về từ ví dụ trên là:
Due date: February 09, 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 bao gồm một số phương thức bổ sung khác, trong đó phải kể đến là parse( ), để nhận chuỗi theo định dạng được lưu giữ trong đối tượng SimpleDateFormat đã cho.
Ví dụ:
Chạy chương trình trên và nó sẽ trả về kết quả đầu ra là:
1818-11-11 Parses as Wed Nov 11 00:00:00 EST 1818
Thiết lập chương trình ngủ trong khoảng thời gian cụ thể trong Java
Bạn có thể ngừng bất kỳ khoảng thời gian nào trong khoảng từ một mili giây cho đến một vòng đời máy tính.
Ví dụ, chương trình dưới đây sẽ ngủ trong 3 giây:
Kết quả đầu ra trả về trong ví dụ trên là:
Sun May 03 18:04:41 GMT 2009
Sun May 03 18:04:51 GMT 2009
Đo thời gian đã trôi qua trong Java
Trong một số trường hợp bạn sẽ phải đo thời gian tại một thời điểm bằng giá trị mili giây.
Trong ví dụ trên sẽ được viết lại như sau:
Kết quả đầu ra trả về trong ví dụ là:
Sun May 03 18:16:51 GMT 2009
Sun May 03 18:16:57 GMT 2009
Difference is : 5993
Lớp GregorianCalendar
GregorianCalendar được bổ sung cho lớp Calendar triển khai lịch Gregorian đúng cách. Tuy nhiên trong bài viết này Taimienphi.vn không đề cập về lớp Calendar, bạn có thể tìm kiếm các thông tin liên quan đến lớp Calendar trong Java trên mạng để biết thêm thông tin.
Phương thức getInstance() của Calendar trả về một GregorianCalendar được khởi tạo với date và time hiện tại theo miền và múi giờ mặc định. GregorianCalendar định nghĩa hai trường: AD và BC. Chúng biểu diễn hai thời đại được định nghĩa bởi GregorianCalendar.
Ngoài ra còn có một số constructor cho các đối tượng GregorianCalendar:
Dưới đây là danh sách các phương thức hữu ích được lớp GregorianCalendar hỗ trợ:
Ví dụ:
Ví dụ trên trả về kết quả đầu ra là:
Date: Apr 22 2009
Time: 11:25:27
The current year is not a leap year
Như vậy trong bài viết trên Taimienphi.vn vừa cung cấp cho bạn các thông tin về ngày tháng (date & time) trong Java. Bên cạnh đó, bạn có thể tham khảo thêm một số bài viết về Java như điều khiển lặp trong Java, các cú pháp cơ bản,...mà Taimienphi.vn đã đăng tải.