1

我正在比较两个日期,一个是一般日期,另一个是从公历获得的。
当我尝试比较两个日期时,结果为假,
后来我意识到这是由于时差造成的。因此,即使两个日期相同且时间不同,我也希望它返回 true 或将后者的日期设置为 default.ie,0

Eg: Start Date : Wed May 08 00:00:00 CAT 2013  
End Date : Wed May 08 00:40:30 CAT 2013    

我试过calender API,set(year,month,day,hour,minute,second); 但设置年月日我不知道。请帮我解决这个问题。

4

3 回答 3

5

You can use simple java code to get date without time as below. This method will set time part for any date to 00:00:00

private Date getDateWithOutTime(Date targetDate) {
    Calendar newDate = Calendar.getInstance();
    newDate.setLenient(false);
    newDate.setTime(targetDate);
    newDate.set(Calendar.HOUR_OF_DAY, 0);
    newDate.set(Calendar.MINUTE,0);
    newDate.set(Calendar.SECOND,0);
    newDate.set(Calendar.MILLISECOND,0);

    return newDate.getTime();

}
于 2013-05-07T23:54:07.813 回答
1

尝试

        Calendar cal = Calendar.getInstance();
        cal.set(2014,Calendar.JUNE,29,0,0,0);        
        date = cal.getTime();
于 2014-06-23T22:22:52.867 回答
0

您可以将毫秒四舍五入到天并进行比较,这将比基于日历的版本更快

    long t1 = date1.getTime() / 86400000 * 86400000;
    long t2 = date2.getTime() / 86400000 * 86400000;
    return Long.compare(t1, t2);
于 2013-05-08T02:51:07.733 回答