我在Android中发现了Calendar
类的奇怪行为。当我需要按时间对某些事件列表进行排序时,我构建了一个Comparator
,如下所示:
@Override
public int compare(Event lhs, Event rhs) {
return lhs.getUserTime().compareTo(rhs.getUserTime());
}
其中getUserTime
是Calendar
个实例。奇怪的是,即使Dates
中包含的Calendars
明显不同,此方法也始终返回0。
从Dates
中提取Calendars
解决了问题:
@Override
public int compare(Event lhs, Event rhs) {
return lhs.getUserTime().getTime().compareTo(rhs.getUserTime().getTime());
}
但我不知道问题来自哪里。