为什么我的日期比较不是真的?

Cla*_*aes 3 java

if下面的if永远不会触发,所以c.after(a)必须总是返回false.但是,如果我取消注释第二个println,我清楚地看到a> 20050214,正如我所料.

Date a = slice.getCurrentRow().getTime();
Calendar b = Calendar.getInstance();
b.set(2005, 2, 14);
if (b.after(a)) {
System.out.println(dateFormat.format(a));
}
//System.out.println(dateFormat.format(a));

Mik*_*man 10

您将日期传递给Calendar.after(对象何时).如果"when"也不是日历,则返回始终为false.在(a)之后尝试b.getTime().

http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html#after(java.lang.Object)