Calendar c1 = Calendar.getInstance();
c1.set(2020, 5, 14, 18, 44, 0);
Calendar c2 = Calendar.getInstance();
c2.set(2020, 5, 14, 18, 44, 0);
System.out.println(c1.getTime());
System.out.println(c2.getTime());
System.out.println(c1.equals(c2));
System.out.println(c1.compareTo(c2));
输出:
Sun Jun 14 18:44:00 CST 2020
Sun Jun 14 18:44:00 CST 2020
false
-1
原因在于Calendar类由当前时间实例化时,设置了毫秒值为当前时间的毫秒值。
利用set()方法将毫秒值设为0即可。
Calendar c1 = Calendar.getInstance();
c1.set(2020, 5, 14, 18, 44, 0);
Calendar c2 = Calendar.getInstance();
c2.set(2020, 5, 14, 18, 44, 0);
c1.set(Calendar.MILLISECOND, 0); //set
c2.set(Calendar.MILLISECOND, 0); //set
System.out.println(c1.getTime());
System.out.println(c2.getTime());
System.out.println(c1.equals(c2));
System.out.println(c1.compareTo(c2));
输出:
Sun Jun 14 18:44:00 CST 2020
Sun Jun 14 18:44:00 CST 2020
true
0