Codenameone 日期比较失败d1。比较到(d2)

Codenameone 日期比较失败d1。比较到(d2),codenameone,Codenameone,排序的日期比较不起作用。请告知 代码: 公共类ListMapComparator实现了Comparator{ @Override public int compare(Object obj1, Object obj2) { try { Map<String, String> test1 = (Map<String, String>) obj1; Map<String, String> test2 = (Map<St

排序的日期比较不起作用。请告知

代码:

公共类ListMapComparator实现了Comparator{

@Override
public int compare(Object obj1, Object obj2) {
    try {
        Map<String, String> test1 = (Map<String, String>) obj1;
        Map<String, String> test2 = (Map<String, String>) obj2;
        String string1 = test1.get("formattedDate");
        String string2 = test2.get("formattedDate");
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        Date d1 = sdf.parse(string1);
        Date d2 = sdf.parse(string2);
        return d1.compareTo(d2);
    } catch (ParseException ex) {
        //Logger.getLogger(ListMapComparator.class.getName()).log(Level.SEVERE, null, ex);
    }
    return 0;

}
@覆盖
公共整数比较(对象obj1、对象obj2){
试一试{
Map test1=(Map)obj1;
Map test2=(Map)obj2;
字符串string1=test1.get(“formattedDate”);
字符串string2=test2.get(“formattedDate”);
SimpleDataFormat sdf=新的SimpleDataFormat(“MM/dd/yyyy”);
日期d1=sdf.parse(string1);
日期d2=sdf.parse(string2);
返回d1。比较(d2);
}捕获(解析异常){
//Logger.getLogger(ListMapComparator.class.getName()).log(Level.SEVERE,null,ex);
}
返回0;
}
}

错误: 错误:找不到符号 返回d1。比较(d2); 符号:方法比较(日期) 位置:日期类型的变量d1 注意:某些输入文件使用或覆盖不推荐使用的API。 注意:有关详细信息,请使用-Xlint:deprecation重新编译。 注意:某些输入文件使用未经检查或不安全的操作。
注意:使用-Xlint:unchecked重新编译以获取详细信息。

Codename One中的
Date
类不可比较,因此调用
compareTo
将失败。但是,通过将最后一行更改为:

return (int)(d1.getTime() - d2.getTime());

或者反过来按相反的顺序排序。

这是一个很好的解决方案,但是在我的例子中,将其转换为
int
并不准确。这个示例(从最早的日期到最晚的日期)更准确:
return Long.compare(date1.getTime(),date2.getTime())