我目前正在处理一些需要比较日期的代码,如下所示:
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/