Java Android Calendar.compareTo在不同时间返回0

Java Android Calendar.compareTo在不同时间返回0,java,android,Java,Android,我在Android中发现了Calendar类的一个奇怪行为。当我需要按时间对一些事件列表进行排序时,我构建了一个比较器,如下所示: @Override public int compare(Event lhs, Event rhs) { return lhs.getUserTime().compareTo(rhs.getUserTime()); } 其中getUserTime是一个Calendar实例。奇怪的是,这个方法总是返回0,即使日历中的日期明显不

我在Android中发现了
Calendar
类的一个奇怪行为。当我需要按时间对一些事件列表进行排序时,我构建了一个比较器,如下所示:

    @Override
    public int compare(Event lhs, Event rhs) {
        return lhs.getUserTime().compareTo(rhs.getUserTime());
    }
其中
getUserTime
是一个
Calendar
实例。奇怪的是,这个方法总是返回0,即使
日历中的
日期
明显不同

从日历中提取日期可以解决以下问题:

    @Override
    public int compare(Event lhs, Event rhs) {
        return lhs.getUserTime().getTime().compareTo(rhs.getUserTime().getTime());
    }

但我不明白问题从何而来

是否考虑单步执行Calendar.compareTo方法?原始代码将Calendar对象与long值(或getTime返回的任何值)进行比较,应该引发异常。很抱歉,它当然会将Calendar与Calendar进行比较。