Tôi có hai trường hợp của lớp Instant
từ java.time
như thế này:Kiểm tra xem hai trường hợp "tức thì" là vào cùng ngày trong Java 8
Instant instant1 = Instant.now();
Instant instant2 = Instant.now().plus(5, ChronoUnit.HOURS);
Bây giờ tôi muốn kiểm tra xem hai trường hợp trong số Instant
thực sự là cùng ngày (ngày, tháng và năm). Dễ dàng Tôi nghĩ, chúng ta hãy chỉ sử dụng bóng mới LocalDate
và phổ from
phương pháp tĩnh:
LocalDate localdate1 = LocalDate.from(instant1);
LocalDate localdate2 = LocalDate.from(instant2);
if (localdate1.equals(localdate2)) {
// All the awesome
}
Trừ rằng phương pháp phổ from
không phải là quá phổ biến và Java phàn nàn khi chạy với một ngoại lệ:
java.time.DateTimeException: Unable to obtain LocalDate from TemporalAccessor: 2014-11-04T18:18:12Z of type java.time.Instant
Để lại cho tôi trở lại hình vuông 1.
Kiểm tra cách nhanh nhất/được khuyến nghị nếu hai trường hợp Instant
thực sự có cùng ngày (có cùng ngày, tháng và năm) r)?
Nói cách khác, bạn cần một cái gì đó mà làm việc với Java 7? Còn Java 6 hoặc Java 5 thì sao? Làm thế nào đến nay bạn cần điều này để làm việc? – markspace
Điều này chỉ có để làm việc cho Java 8 trong trường hợp của tôi, nên có lẽ đã xác định rằng – Robin
Làm thế nào về việc sử dụng 'instant1.truncatedTo (ChronoUnit.DAYS)'? Làm tương tự trên instant2 và so sánh các trường hợp cắt ngắn? – dcsohl