ngay-gio-trong-java

Kiểu dữ liệu ngày giờ trong Java

This entry is part 30 of 31 in the series Tự học lập trình Java

Xin chào các bạn, hôm nay mình sẽ giới thiệu các bạn cách làm việc với kiểu dữ liệu ngày giờ trong Java. Kể từ khi Java 8, Oracle đã xây dựng lại API về ngày tháng, được cho là tốt hơn các API cũ.

Kiểu dữ liệu ngày giờ trong Java

Dưới đây là một số lớp hỗ trợ kiểu dữ liệu ngày giờ:

  • java.util.Date: Một lớp đại diện cho ngày tháng năm và thời gian. Tiếc là hầu hết các phương thức của nó đã bị lỗi thời, khuyến cáo là không nên sử dụng các phương thức đó, tuy nhiên lớp Date vẫn được sử dụng rỗng rãi.
  • java.sql.Date: Một lớp mô tả ngày tháng năm. Thông tin về thời gian bị cắt bỏ. Lớp này thường sử dụng trong JDBC.
  • java.util.Calendar: Lớp mô tả bộ Lịch. Nó có các phương thức toán học về thời gian, chẳng hạn thêm ngày, bớt ngày,…
  • java.time.*: Lớp này cung cấp đầy đủ các API xử lý ngày giờ trong Java. Đây là lớp mới được hỗ trợ từ Java 8.

Trong bài viết này mình chỉ giới thiệu các bạn về các lớp thuộc package java.time, vì đây là các API mới trong Java 8.

Làm việc với API mới

Class LocalDate

Bạn có thể tạo một đối tượng thuộc class LocalDate bằng các phương thức tĩnh được cung cấp sẵn. Lưu ý là không thể tạo trực tiếp từ contructor.

Như vậy chúng ta có thể tạo được một đối tượng của class bằng các phương thức tĩnh là now()of().

Class LocalTime

Tương tự như trên bạn cũng có thể tạo một đối tượng LocalTime từ các phương thức tĩnh.

 

Class LocalDateTime

Class LocalDateTime là class đại diện cho cả hai class ở trên, nó bao gồm thông tin về ngày tháng và thời gian. Tương tự chúng ta có thể tạo bằng các phương thức tĩnh được cung cấp sẵn.

 

Các lợi ích của API ngày giờ mới

Được tích hợp các API mạnh mẽ

Được cung cấp các phương thức plus*() để thêm ngày, tuần… Và các phương thức minus*() để giảm ngày, tuần.

Được khuyến khích thay thế lớp Date và Calendar

Nếu sử dụng Calendar thì khá dài dòng cho đoạn code in ra ngày tháng ở trên. Và đặc biệt là sự rắc rối của nó, bạn rất dễ nhầm lẫn bởi vì tháng trong Calendar bắt đầu từ 0… Hazzz quá nhiều lý do để chúng ta sử dụng API mới phải không các bạn !

Bài viết mình đến đây là kết thúc, cám ơn các bạn đã theo dõi !

Similar Posts

Subscribe
Notify of
guest
0 Bình luận
Inline Feedbacks
View all comments