2017-11-30 11 views
8

ナノ秒を考慮せずに2つのLocalDateTimeオブジェクトを比較したいと思います。これは私が現在やっていることです。 これを行うにはより良い方法がありますか?Java 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内のメソッドのほとんどは、すでに各メソッド呼び出しに新しいインスタンスを返すようがあれば、最小限のパフォーマンスの赤字があるので、私はあなたに最も読みやすいですどんなアプローチを進めることをお勧めしますさまざまな方法の間で、あなたは手近な課題を達成することができます。たとえば、truncateToは、minusNanosを使用して例と同じ結果を返すために使用できます。

System.out.println(object1.truncatedTo(ChronoUnit.SECONDS) 
    .isEqual(object2.truncatedTo(ChronoUnit.SECONDS))); 
関連する問題