在将当前日期与上一个日期进行比较时,如何检查分钟的差异

时间:2015-07-29 12:16:28

标签: java

我有这种格式的约会:2015-07-29 16:29:32

如何检查当前日期与指定日期之间的分钟差异?

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Test {
    public static void main(String[] args) throws ParseException {
        String datetocomparestr = "2015-07-29 16:29:32";
        SimpleDateFormat datetocomparesdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");  
        Date d1 = null;
          d1 = datetocomparesdf.parse(datetocomparestr);
          System.out.println(d1);
          SimpleDateFormat dateFormatcurrentsdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
          Date date = new Date();
          System.out.println(dateFormatcurrentsdf.format(date));

    }
}

能告诉我如何解决这个问题。提前谢谢。

5 个答案:

答案 0 :(得分:2)

一个简单的解决方案是使用Date.getTime()方法(返回“自1.1.1970 以来的毫秒”),获取这些值的差异并将该值除以1000 * 60(每秒1000毫秒,每分钟60秒)。

答案 1 :(得分:1)

为什么这么复杂?只需使用java的long表示来确定时间:

long timeToComp = parseSomeTime().getTime();
long timeCurrent = System.currentTimeMillis();

long dif = timeCurrent - timeToComp;
long mins = dif / (1000 * 60);//dif is the number of milliseconds between the current date and the parsed one

答案 2 :(得分:1)

您可以使用localdatetime,如下所示

LocalDateTime d1=new LocalDateTime(date1);
LocalDateTime d2=new LocalDateTime(now);

int minutesDiff=Minutes.minutesBetween(d1, d2).getMinutes();

答案 3 :(得分:0)

double minutes = (date.getTime() - d1.getTime()) / (1000 * 60);

答案 4 :(得分:0)

Java中的

Date#getTime()以毫秒为单位返回时间。

将以下内容添加到您的代码中。

 long minutesDiff = (date.getTime() - d1.getTime()) / 1000 / 60;    //convert to minutes
 System.out.println("Difference in minutes : " + minutesDiff);

查看此实时demo

这是完整的代码。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class Test {
    public static void main(String[] args) throws ParseException {
        String datetocomparestr = "2015-07-29 16:29:32";
        SimpleDateFormat datetocomparesdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");  
        Date d1 = null;
        d1 = datetocomparesdf.parse(datetocomparestr);
        System.out.println(d1);
        SimpleDateFormat dateFormatcurrentsdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
        Date date = new Date();
        System.out.println(dateFormatcurrentsdf.format(date));

        long minutesDiff = (date.getTime() - d1.getTime()) / 1000 / 60;
        System.out.println("Difference in minutes : " + minutesDiff);

    }
}