Java 在比较当前日期和前一日期时,如何检查以分钟为单位的差异

Java 在比较当前日期和前一日期时,如何检查以分钟为单位的差异,java,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 datet

我有一个这样的日期:
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));

    }
}

你能告诉我怎么解决这个问题吗。提前感谢。

一个简单的解决方案是使用
Date.getTime()
方法(返回“自1970年1月1日起的毫秒”),获得这些值的差值,然后将该值除以1000*60(每秒1000毫秒,每分钟60秒)。

为什么这么复杂?只需使用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
double minutes=(date.getTime()-d1.getTime())/(1000*60);
您可以按如下方式使用

在Java中,以毫秒为单位返回时间

将以下内容添加到代码中

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

这是完整的代码

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);

    }
}

可能的dup:这将解决您的问题:
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);

    }
}