有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

比较java。util。日历日期到java。util。日期

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

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

似乎util日期比日历日期大。为什么会失败?比较这些日期的书写方式是什么

编辑1:- 我的问题是我需要将一个util日期(存储在数据库中)比如2017-12-01 16:41:00.0与当前日期和时间进行比较,写入方法是什么


共 (2) 个答案

  1. # 1 楼答案

    检查一下米利斯:

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

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

  2. # 2 楼答案

    消除秒/毫秒的一个简单方法是计算分钟数

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

    你也可以使用时间单位

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

    如果你喜欢使用图书馆而不是数学