嗨,我正在创建日历实例使用:
Calendar calendarDate=Calendar.getInstance();
calendarDate.set(2012, 6, 1,0,0,0);
Date date1=calendar.getTime();
Run Code Online (Sandbox Code Playgroud)
之后我使用以下方法创建java.util.date实例:
Date date2=new Date(2012 - 1900,7-1, 01);
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用以下代码比较日期时:
System.out.println(date2.compareTo(date1));
System.out.println(date1.compareTo(date2));
Run Code Online (Sandbox Code Playgroud)
它打印-1和1而不是0(零).
任何人都可以帮我找到出错的地方吗?
在设置新日历之前尝试清除日历的值.这将解决您的问题.
Calendar calendarDate=Calendar.getInstance();
calendarDate.clear();
calendarDate.set(2012, 6, 1,0,0,0);
Run Code Online (Sandbox Code Playgroud)
测试它:
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)));
}
}
Run Code Online (Sandbox Code Playgroud)