比较Java中的两个日期,而不是compareTo

时间:2014-11-03 16:21:56

标签: java date compareto

我正在编写自己的compareTo方法来比较两个日期。我该怎么做呢?

我之前已经考虑过这个问题,使用了大量的if语句,但必须有更好的方法。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

如果您指的是java.util.Date,请执行date1.getTime() < date2.getTime()。对长值的简单比较。

答案 1 :(得分:1)

有三种方法可以帮助Date.before(Date)Date.after(Date)Date.equals(Date)你可以做点什么

public static int compareTo(Date a, Date b) {
  if (a.equals(b)) return 0;
  return (a.before(b) ? -1 : 1);
}

答案 2 :(得分:0)

这是一个好的开始:

public class MyComparator extends Comparator<Date> {
    public int compare(Date o1, Date o2){
        return o1.getTime() - o2.getTime();
    }
}

例如:

TreeSet<Date> ts = new TreeSet<Date>(new MyComparator());
ts.add(new Date(98796541));
ts.add(new Date(59586541));
System.out.println("Earlier is " + ts.first());