如何在android studio中比较或计算两个日期的差异

如何在android studio中比较或计算两个日期的差异,android,date,compareto,Android,Date,Compareto,我已经试过在android studio中比较两次约会,就像这样 String dtThen = "13-10-2013"; Date dateThen = formatter.parse(dtThen); String dtNow = "15-10-2013"; Date dateNow = formatter.parse(dtNow); if (dateThen.compareTo(dateNow)==0)

我已经试过在android studio中比较两次约会,就像这样

        String dtThen = "13-10-2013";
        Date dateThen = formatter.parse(dtThen);

        String dtNow = "15-10-2013";
        Date dateNow = formatter.parse(dtNow);

        if (dateThen.compareTo(dateNow)==0) {

            Log.d("if different date is 0");

        } else if (dateThen.compareTo(dateNow)==1) {

            Log.d("if different date is 1");


        } else if (dateThen.compareTo(dateNow)>1) {

            Log.d("if different date is 2");

        }
在我的代码中有三个条件,我想使条件比较日期为0、1且大于1

如果compareTo为0,则是可行的,但如何使compareTo与1相同且大于1


如何创建时间戳?

您还可以根据日期创建时间戳并比较该时间戳。
下面是将日期创建为时间戳的示例

String dtThen ="13-10-2013";
String dtNow = "15-10-2013";
DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
Date dateThen = (Date)formatter.parse(dtThen ); 
Date dateNow  = (Date)formatter.parse(dtNow ); 
现在你可以像下面一样比较时间戳了

  if(dateThen.getTime()>dateNow.getTime())
   {
      //      Do some thing here
   }
   else
   {
     //Do other stuff here
   }
要获取日期之间的差异,您需要使用以下代码:-

long diff = dateThen.getTime() - dateNow.getTime();
long seconds = diff / 1000;
long minutes = seconds / 60;
long hours = minutes / 60;
long days = hours / 24;
System.out.println("YOUR DAY HOUR AND MINUTE DIFFERENCE==>>> "+ days +" "+hours +"  "+minutes +"  "+seconds);
在最后一天的差异可以计算如下

if (days ==0) {

    Log.d("if different date is 0");

} else if (days ==1) {

    Log.d("if different date is 1");


} else if (days >1) {

    Log.d("if different date is 2");

}

您可以使用以下方法获得日差

public static int getDateDifference(String dtThen, String dtNow, String format) {

    // Converting String to Date
    Date dateThen = convertStingToDate(dtThen, format);
    Date dateNow = convertStingToDate(dtNow, format);

    // converting Date to Calendar object
    Calendar now = Calendar.getInstance();
    now.setTime(dateNow);
    Calendar theDay = Calendar.getInstance();
    theDay.setTime(dateThen);

    // Getting the difference in milliseconds
    long diffMillis = now.getTimeInMillis() - theDay.getTimeInMillis();

    // Converting milliseconds into number of days
    int daysDiff = (int) (diffMillis / (1000 * 60 * 60 * 24));

    return daysDiff;
}

public static Date convertStingToDate(String inputDate, String format) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format, Locale.getDefault());

    Date date = null;
    try {
        date = simpleDateFormat.parse(inputDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return date;
}
您可以从代码中这样调用上述方法

    String dtThen = "13-10-2012";
    String dtNow = "15-10-2013";
    String format = "dd-MM-yyyy";

    int daysDiff = getDateDifference(dtThen, dtNow, format);

    Log.d(TAG, "Day difference: " + daysDiff);
它将给出精确的日差。

以下是代码:

public static int getDateDifference(String dtThen, String dtNow, String format) {

    // Converting String to Date
    Date dateThen = convertStingToDate(dtThen, format);
    Date dateNow = convertStingToDate(dtNow, format);

    // converting Date to Calendar object
    Calendar now = Calendar.getInstance();
    now.setTime(dateNow);
    Calendar theDay = Calendar.getInstance();
    theDay.setTime(dateThen);

    // Getting the difference in milliseconds
    long diffMillis = now.getTimeInMillis() - theDay.getTimeInMillis();

    // Converting milliseconds into number of days
    int daysDiff = (int) (diffMillis / (1000 * 60 * 60 * 24));

    return daysDiff;
}

public static Date convertStingToDate(String inputDate, String format) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format, Locale.getDefault());

    Date date = null;
    try {
        date = simpleDateFormat.parse(inputDate);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return date;
}
Date d2 = null;
                Date d1 = null;
                Calendar cal = Calendar.getInstance();
                try {
                    d2 = formatter.parse(formatter.format(c.getTime()));
                    d1 = formatter.parse(preferance.getDate());//Returns 15/10/2012
                } catch (java.text.ParseException e) {
                    e.printStackTrace();
                }
                int diffInDays = (int) ((d1.getTime() - d2.getTime()) / (1000 * 60 * 60 * 24));
                //Toast.makeText(getActivity(), "diff"+diffInDays, Toast.LENGTH_SHORT).show();
                Log.d(TAG, "initWheel3: " + diffInDays);
                System.out.println(diffInDays);

如果我想使日期差为2或更多,如何确定?我将设置三个条件,如果不同的日期==0,如果不同的日期==1,如果不同的日期>1@MegiFernanda你试过上面的代码吗。。在我上面的代码中,“天”将显示日期的差异…差异可以是根据日期的任何事情…您可以使用我的代码轻松管理…请检查我的更新解决方案,并在出现问题时通知我