我想有一个compareTo方法忽略java.util.Date的时间部分.我想有很多方法可以解决这个问题.什么是最简单的方法?
名为的自定义类MyCustomClass具有其属性joda LocalDateTime。我需要创建一个java.util.Comparator类,MyCustomClass以按其TimeStamp属性比较实例,该属性的类型为LocalDateTime。我已经阅读了有关此内容的几篇文章(包括这一篇文章),并且尝试了所有方法,但是答案中显示的所有方法似乎都不起作用。例如,以下几种方法会引发编译错误:
import java.time.temporal.ChronoUnit;
import java.util.Comparator;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Period;
import my.app.model.MyCustomClass;
public class MyCustomClassComparator implements Comparator<MyCustomClass>{
public int compare(MyCustomClass mcc1, MyCustomClass mcc2) {
//this first attempt throws a return type error for the method.
return Period.fieldDifference(mcc2.getTimestamp(), mcc1.getTimestamp());
//This next attempt says that LocalDateTimes are not valid arguments
Duration.between(mcc2.getTimestamp(), mcc1.getTimestamp());
//The next approach also says LocalDateTimes are not valid arguments.
DateTime.parse(mcc2.getTimestamp()), mcc1.getTimestamp()).getSeconds();
//This boilerplate approach …Run Code Online (Sandbox Code Playgroud)