2017-11-30 3 views
8

나노초를 고려하지 않고 2 개의 LocalDateTime 객체를 비교하고 싶습니다. 이것이 제가 현재하고있는 방법입니다. 이 작업을 수행하는 더 좋은 방법은 무엇입니까?자바 8에서 나노초없이 LocalDateTime을 비교하십시오.

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 

답변

6

LocalDateTime API 내에서 방법의 대부분은 이미 각 메소드 호출에 새로운 인스턴스를 반환으로있는 경우 최소한의 성능 적자가 그래서 난 당신이 가장 읽을 수있는 어떤 방식으로 진행하는 것이 좋습니다 것 서로 다른 방법을 사용하여 작업을 수행 할 수 있습니다. 예를 들어, truncateTominusNanos을 사용하여 예제와 동일한 결과를 반환하는 데 사용할 수 있습니다.

System.out.println(object1.truncatedTo(ChronoUnit.SECONDS) 
    .isEqual(object2.truncatedTo(ChronoUnit.SECONDS))); 
관련 문제