ADB
ADB

Reputation: 567

Compare two dates with time whose Formate is yyyy-MM-dd HH:mm:ss in Android

I have to compare two dates whose format is yyyy-MM-dd HH:mm:ss. I know the way to compare date only the before or after date function.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                String currentDateandTime = sdf.format(new Date());
String expiryTime = "2014-09-10 00:00:00";

But what's the best way to compare date and time with the current date and time. Like we have two dates 2014-09-10 00:00:00 and current date with time is 2014-08-31 10:37:15. And now we have to compare it. How we can do that.

Any help is appreciated.

Upvotes: 3

Views: 9264

Answers (3)

Subhrajyoti Majumder
Subhrajyoti Majumder

Reputation: 41220

Convert the Date String to java.util.Date object using SimpleDateFormat and compare those date objects with Date#after or Date#before methods.


In java 8 - using new Java Time API, parse date String using DateTimeFormat and get LocalDate object and compare them.

DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
final LocalDate dt1 = dtf.parseLocalDate(dateString1);
final LocalDate dt2 = dtf.parseLocalDate(dateString2);

final boolean check = dt1.isAfter(dt2);
if(check)
    System.out.println(dt1 +" is after "+dt2);
else
    System.out.println(dt2 +" is after "+dt1);

Upvotes: 5

Elliott Frisch
Elliott Frisch

Reputation: 201477

If I understand what you're trying to do you want to use a SimpleDateFormat (and you posted a good pattern) to parse the String(s) into Date(s) and then Date.before(Date). Putting that together into something like,

DateFormat sdf = new SimpleDateFormat(
    "yyyy-MM-dd HH:mm:ss");
String firstStr = "2014-09-10 00:00:00";
String secondStr = "2014-08-31 10:37:15";
Date first = sdf.parse(firstStr);
Date second = sdf.parse(secondStr);
boolean before = (first.before(second));
System.out.printf("%s is before %s",
    before ? firstStr : secondStr,
    before ? secondStr : firstStr);

Output is

2014-08-31 10:37:15 is before 2014-09-10 00:00:00

Upvotes: 4

Digvesh Patel
Digvesh Patel

Reputation: 6533

try{

      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    } catch (ParseException e1) 
      {
    // TODO Auto-generated catch block
    e1.printStackTrace();
                        }

       String str1 = "2014-09-10 00:00:00";
       Date date1 = formatter.parse(str1);

        String str2 = "2014-08-31 10:37:15";
       Date date2 = formatter.parse(str2);

    if (date1.compareTo(date2)<0)
    {
    System.out.println("date2 is Greater than my date1");                          
    }

Upvotes: 2

Related Questions