Rate this post

LocalDate trong Java là một class trong package java.time trong Java 8 và các phiên bản sau đó. Nó được sử dụng để lưu trữ và xử lý ngày trong một chuẩn ISO định dạng, không chứa thời gian hoặc thời gian địa phương.

Các bài viết liên quan:

LocalDate cung cấp các phương thức để làm việc với ngày, ví dụ như lấy ngày hiện tại, tăng hoặc giảm ngày, lấy tháng hoặc năm, v.v.

Ví dụ:

LocalDate cũng có thể sử dụng với các phương thức khác nhau để so sánh, tính toán ngày giữa các ngày, v.v.

Phân biệt LocalDate với Date trong java

LocalDate và Date trong Java là hai class được sử dụng để lưu trữ và xử lý thông tin ngày, tuy nhiên chúng có một số sự khác biệt chính:

  1. LocalDate chỉ chứa ngày, tháng, năm, không chứa thời gian hoặc thời gian địa phương, trong khi Date chứa thời gian và thời gian địa phương.
  2. LocalDate sử dụng chuẩn ISO định dạng ngày, trong khi Date sử dụng chuẩn thời gian Unix Epoch.
  3. LocalDate mới được thêm vào trong Java 8 và các phiên bản sau đó, trong khi Date là một class cũ hơn trong Java.
  4. Vì LocalDate chỉ chứa ngày, tháng, năm nên nó có thể sử dụng để xử lý các thao tác liên quan đến ngày, ví dụ như tính toán ngày giữa các ngày, tăng hoặc giảm ngày, v.v. Trong khi đó Date có thể sử dụng để xử lý các thao tác liên quan đến thời gian, ví dụ như tính toán thời gian giữa hai thời điểm.
  5. LocalDate có các phương thức và các lớp hỗ trợ của java.time package, vì vậy nó có thể sử dụng với các lớp hỗ trợ khác nhau. Trong khi đó, Date không có các lớp hỗ trợ như vậy và không đượccủa nó không được khuyến khích sử dụng trong các ứng dụng mới vì nó có một số hạn chế và khuyết điểm như không hỗ trợ chuẩn ISO định dạng ngày, không hỗ trợ các tính toán về ngày, không hỗ trợ các thao tác liên quan đến thời gian địa phương.

LocalDate có rất nhiều tính năng hữu ích hơn so với Date và khuyến khích sử dụng trong các dự án Java mới.

Convert LocalDate sang Date và ngược lại

Có hai cách để chuyển đổi giữa LocalDate và Date trong Java:

  1. Chuyển từ LocalDate sang Date:
LocalDate localDate = LocalDate.now();
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
  1. Chuyển từ Date sang LocalDate:
Date date = new Date();
Instant instant = date.toInstant();
LocalDate localDate = instant.atZone(ZoneId.systemDefault()).toLocalDate();

Note:

  • Trong ví dụ trên, chúng ta sử dụng Instant để chuyển đổi giữa LocalDate và Date. Instant là một class trong package java.time cung cấp thông tin về một thời điểm dựa trên chuẩn Unix Epoch.
  • atStartOfDay() để chuyển LocalDate sang Date, trong khi toLocalDate() để chuyển từ Date sang LocalDate.
  • atZone() để chuyển Instant sang LocalDate, trong khi toInstant() để chuyển từ LocalDate sang Instant.
  • ZoneId.systemDefault() là một đối tượng cung cấp thông tin về múi giờ địa phương.

Mong rằng với các ví dụ trên sẽ giúp bạn hiểu rõ hơn về cách chuyển đổi giữa LocalDate và Date.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now