比较Calendar和java.util.date日期

Vip*_*pul 1 java date

嗨,我正在创建日历实例使用:

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(零).
任何人都可以帮我找到出错的地方吗?

Fra*_*eth 5

在设置新日历之前尝试清除日历的值.这将解决您的问题.

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)