将java.util.Calendar日期与java.util.Date进行比较

时间:2017-12-01 11:29:21

标签: java java.util.date date-comparison java.util.calendar

我需要将日历时间与日期进行比较。我在下面写了代码。

Calendar now = Calendar.getInstance();
now.set(Calendar.SECOND, 0);
Date date = new Date();
date.setSeconds(0);
System.out.println(date);
System.out.println(now.getTime());
System.out.println(date.compareTo(now.getTime()));

输出

Fri Dec 01 16:54:00 IST 2017
Fri Dec 01 16:54:00 IST 2017
1

似乎工具日期大于日历日期。它为什么失败?比较这些日期的书写方式是什么?

编辑1: - 我的问题是我需要比较一个工具日期(存储在数据库中)让我们说2017-12-01 16:41:00.0到当前的日期和时间,什么是写方法?

2 个答案:

答案 0 :(得分:2)

检查毫秒:

    System.out.println(now.getTime().getTime());
    System.out.println(date.getTime());
    System.out.println(now.getTime().getTime() - date.getTime());

然后你会发现(有时)是有区别的。

答案 1 :(得分:1)

删除秒/毫秒的简单方法是计算分钟数

// compare the minutes, ignoring the seconds/milli-seconds.
if (now.getTime().getTime() / 60_000 == date.getTime() / 60_000)

您也可以使用TimeUnit

if (TimeUnit.MILLISECONDS.toMinutes(now.getTime().getTime()) == 
    TimeUnit.MILLISECONDS.toMinutes(date.getTime()))

如果您更喜欢使用库而不是数学。