日历只有日期,没有日历时间?

时间:2013-05-07 22:43:19

标签: java date calendar

我比较两个日期,一个是一般日期,另一个是格里高利历 当我试图比较两个日期时,结果是假的,
后来我意识到这是由于时差。因此,即使两个日期相同且时间不同,我希望它返回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    

我尝试了日历API,设置(年,月,日,小时,分钟,秒);但设置年,月和日我不知道。请帮我解决这个问题。

3 个答案:

答案 0 :(得分:5)

您可以使用简单的java代码在没有时间的情况下获取日期,如下所示。此方法将任何日期的时间部分设置为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();

}

答案 1 :(得分:1)

        Calendar cal = Calendar.getInstance();
        cal.set(2014,Calendar.JUNE,29,0,0,0);        
        date = cal.getTime();

答案 2 :(得分:0)

您可以将millis转换为几天并进行比较,这将比基于日历的版本

更快
    long t1 = date1.getTime() / 86400000 * 86400000;
    long t2 = date2.getTime() / 86400000 * 86400000;
    return Long.compare(t1, t2);