0

我需要比较日历时间和日期。我写了下面的代码。

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:- 我的问题是我需要将 util 日期(存储在数据库中)比方说 2017-12-01 16:41:00.0 与当前日期和时间,什么是写入方法?

4

2 回答 2

2

检查毫:

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

然后您会看到(有时)存在差异。

于 2017-12-01T11:32:41.310 回答
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()))

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

于 2017-12-01T11:39:33.430 回答