在java 8中比较没有纳秒的LocalDateTime

Nir*_*ane 9 java java-8

我想比较2个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  
Run Code Online (Sandbox Code Playgroud)

Ous*_* D. 11

我建议您继续使用最可读的方法,因为LocalDateTime API中的大多数方法已经在每个方法调用上返回一个新实例,因此如果有任何方法可以实现手头的任务.例如,truncateTo可以用来返回与你的例子相同的结果,使用minusNanos:

System.out.println(object1.truncatedTo(ChronoUnit.SECONDS)
    .isEqual(object2.truncatedTo(ChronoUnit.SECONDS))); 
Run Code Online (Sandbox Code Playgroud)