Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - Compare two dates

Tags:

date

android

I want to compare two dates in my application

The first date will be todays date The second will come from a database

To save the second date my code is as follows; (Used tomorrows date to keep it simple)

 Calendar calendar = Calendar.getInstance();
 calendar.add(Calendar.DAY_OF_YEAR, 1);
 Date tomorrow = calendar.getTime();
 DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");

 String tomorrowAsString = dateFormat.format(tomorrow);

So tomorrowAsString (10-Oct-2015) is stored in a table in my database

In another form I'm retrieving that date and putting it into a String

String steepingDate = (c.getString(3));

I imagine that I'll need to convert that string into a date format and then use the following to get todays date;

Calendar calendar = Calendar.getInstance();
Date today = calendar.getTime();
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");

String todayAsString = dateFormat.format(today);

Here is where I'm getting stuck as I'm not sure how to turn the steepingDate into a Date and then what is the actual way of comparing the strings, I've tried looking online but there's so many different ways that I've tried and none so far have worked. I want to know which one of the two is grater

EDIT:

I've combined some of the answers and come up with the following;

do {
      String steepingDate = (c.getString(3));
      SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
      Date steepingdate = formatter.parse(steepingDate);

      Calendar calendar = Calendar.getInstance();
      Date today = calendar.getTime();

      if(today.compareTo(steepingdate)>0)
      {
         CompleteSteeping.add(c.getString(1));
      }
      i += 1;
   }while (c.moveToNext());

However on;

SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy");
Date steepingdate = formatter.parse(steepingDate);

I'm getting an error stating

'Unparseable date: "java.util.GregorianCalender[time=1444461352665,areFieldsSet=true,Ienient=true\zone=GMT,firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2015,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,DAY_OF_YEAR=283,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=7,HOUR_OF_DAY=7,MINUTE=15,SECOND=52,MILLISECOND=665,ZONE_OFFSET=0DST_OFFSET=0]" (at offset 0)

like image 308
Sjharrison Avatar asked Oct 09 '15 07:10

Sjharrison


1 Answers

If you just want to compare the Strings it would look like this:

    Calendar calendar = Calendar.getInstance();
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    Date tomorrow = calendar.getTime();
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");

    String tomorrowAsString = dateFormat.format(tomorrow);

    calendar = Calendar.getInstance();
    Date today = calendar.getTime();

    String todayAsString = dateFormat.format(today);

    if(tomorrowAsString.equals(todayAsString))
        System.out.println(true);
    else
        System.out.println(false);
like image 129
Surro Avatar answered Sep 27 '22 18:09

Surro