我想比较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
答案 0 :(得分:10)
我建议您继续使用对您而言最具可读性的方法,因为LocalDateTime API中的大多数方法已经在每个方法调用上返回一个新实例,因此如果存在最小的性能缺陷,您可以通过不同的方式完成手头的任务。例如,truncateTo可以用于使用minusNanos
返回与示例相同的结果:
System.out.println(object1.truncatedTo(ChronoUnit.SECONDS)
.isEqual(object2.truncatedTo(ChronoUnit.SECONDS)));