日期比较失败d1.compareTo(d2)

时间:2016-07-22 22:19:29

标签: 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<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;

}

}

错误:    错误:找不到符号             return d1.compareTo(d2);   符号:方法compareTo(日期)   location:Date类型的变量d1   注意:某些输入文件使用或覆盖已弃用的API。   注意:使用-Xlint重新编译:弃用以获取详细信息。   注意:某些输入文件使用未经检查或不安全的操作。   注意:使用-Xlint重新编译:取消选中以获取详细信息。

1 个答案:

答案 0 :(得分:2)

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

来执行大致相同的操作
return (int)(d1.getTime() - d2.getTime());

或者以相反的顺序排序。