我需要将日历时间与日期进行比较。我在下面写了代码。
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到当前的日期和时间,什么是写方法?
答案 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()))
如果您更喜欢使用库而不是数学。