2017-11-30 19 views
8

Tôi muốn so sánh 2 đối tượng LocalDateTime mà không xem xét nano giây. Đây là cách tôi hiện đang làm. là có cách nào tốt hơn để làm điều này?So sánh LocalDateTime mà không cần nano giây trong java 8

LocalDateTime object1 = LocalDateTime.of(2014, 3, 30, 12, 30, 23, 12000); 
LocalDateTime object2 = LocalDateTime.of(2014, 3, 30, 12, 30, 23, 12004); 

System.out.println(object1.isEqual(object2)); // false 

LocalDateTime objec1tWithoutNano = object1.minusNanos(object1.getNano()); 
LocalDateTime objec2tWithoutNano = object2.minusNanos(object2.getNano()); 

System.out.println(objec1tWithoutNano.isEqual(objec2tWithoutNano)); // true 

Trả lời

6

tôi muốn khuyên bạn nên tiến hành với bất cứ phương pháp là có thể đọc được hầu hết với bạn như hầu hết các phương pháp trong LocalDateTime API đã trở lại một trường hợp mới trên mỗi phương pháp gọi nên có sự thâm hụt hiệu suất tối thiểu nếu có giữa các cách khác nhau bạn có thể hoàn thành nhiệm vụ trong tầm tay. ví dụ: truncateTo có thể được sử dụng để trả lại kết quả tương tự như ví dụ của bạn với việc sử dụng minusNanos:

System.out.println(object1.truncatedTo(ChronoUnit.SECONDS) 
    .isEqual(object2.truncatedTo(ChronoUnit.SECONDS))); 
Các vấn đề liên quan