嗨,我正在使用以下方法创建Calendar实例:
Calendar calendarDate=Calendar.getInstance();
calendarDate.set(2012, 6, 1,0,0,0);
Date date1=calendar.getTime();
之后,我使用以下命令创建java.util.date实例:
Date date2=new Date(2012 - 1900,7-1, 01);
现在,当我尝试使用以下代码比较日期时:
System.out.println(date2.compareTo(date1));
System.out.println(date1.compareTo(date2));
它打印-1和1而不是0(零)。
谁能帮我找出问题所在?
最佳答案
在设置新日历之前,请尝试清除日历的值。这样可以解决您的问题。
Calendar calendarDate=Calendar.getInstance();
calendarDate.clear();
calendarDate.set(2012, 6, 1,0,0,0);
测试一下:
import java.util.Calendar;
import java.util.Date;
import org.junit.Assert;
public class DateTest {
@org.junit.Test
public void test() {
Calendar calendarDate=Calendar.getInstance();
calendarDate.clear();
calendarDate.set(2012, 6, 1,0,0,0);
Assert.assertEquals(0, calendarDate.getTime().compareTo(new Date(2012 - 1900,7-1, 01)));
}
}