我遇到了问题,因为我试图将Date传递给Calendar.before()和Calendar.after()而不是传递Calendar。
如果传递日期,这些方法总是返回false。
答案 0 :(得分:2)
可能是因为有人可以编写Calendar
的子类,它可以处理各种数据类型,例如Date,而不会破坏Calendar.before(Object)
或Calendar.after(Object)
方法签名。 没有其他可以理解的理由。所以你可能不得不忍受它。
答案 1 :(得分:0)
日历前后收到一个对象而不是日期格式化为字符串 使其工作尝试发送:
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
cal.setTime(sdf.parse("Mon Mar 14 16:02:37 GMT 2011"));
Calendar.before(cal);
应该这样做。
至于为什么 - 不要认为真正有充分的理由让整个班级变得复杂,超出理由。