我比较两个日期,一个是一般日期,另一个是格里高利历
当我试图比较两个日期时,结果是假的,
后来我意识到这是由于时差。因此,即使两个日期相同且时间不同,我希望它返回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,设置(年,月,日,小时,分钟,秒);但设置年,月和日我不知道。请帮我解决这个问题。
答案 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);