即使日期相等或不相等,CompareTo也会失败。它只打印1。
比较时,CompareTo不会返回0。 !!
这个愚蠢的代码挤我的脑袋。嘿朋友我犯了什么罪?import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class date {
public static void main (String args[]) throws ParseException
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date expiry = sdf.parse("2012-11-09");
System.out.println(sdf.format(expiry));
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(expiry);
cal1.add(Calendar.DATE, -2);
System.out.println(sdf.format(cal1.getTime()));
System.out.println(sdf.format(cal2.getTime()));
int j = cal1.compareTo(cal2);
System.out.println("The result is :" + j);
}
}
答案 0 :(得分:3)
compareTo
说实话。您只是隐藏了输出的小时,分钟,秒和毫秒。
expiry
日期设置为00:00:00.0000
的某一天(当天的第一个毫秒),而cal2
仍然保留实际时间。
答案 1 :(得分:1)
compareTo
该功能为您提供解决方案......
你可以看看这里。
http://www.java-examples.com/compare-two-java-date-objects-using-compareto-method-example
答案 2 :(得分:1)
CompareTo比较两个Calendar对象表示的时间值(与Epoch的毫秒偏移量)。如果您使用格式化打印cal1和cal2,您将看到时差。
System.out.println(cal1.getTime());
System.out.println(cal2.getTime());
这将显示两个日历实例持有的确切时间。