我目前正在处理一些需要比较日期的代码,如下所示:

public int compare(ItemLocation o1, ItemLocation o2) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
                Date date1 = sdf.parse(o1.getDatePublished());
                Date date2 = sdf.parse(o2.getDatePublished());
                Calendar cal1 = Calendar.getInstance();
                Calendar cal2 = Calendar.getInstance();
                cal1.setTime(date1);
                cal2.setTime(date2);
                if(cal1.equals(cal2)) {
                    return 0;
                } else if(cal1.before(cal2)) {
                    return -1;
                } else if(cal1.after(cal2)) {
                    return 1;
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }


所以我的问题是多方面的。


这是比较两个日期的最佳方法吗?
出现“方法必须返回int类型的结果”错误消息,解决此问题的最佳方法是什么? (我不认为添加return 0;最后非常实用……这就是我在想的)
[可选]有没有更有效的方式编写3个if / else if语句?


谢谢你们!

最佳答案

看起来是比较日期的好方法。
对于编译错误,请在catch块中抛出异常或返回int值。

关于java - 比较日期和其他小技巧,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11813240/

10-09 03:18