[java] java Compare two dates

I want to compare two dates and check if the date has expired or not.

Here is the code I used :

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:ss:ii");
Date date1 = sdf.parse("20012-10-4 10:15:25");
Date date2 = sdf.parse("2013-10-4 10:15:25");

if(date1.equals(date12)){
    System.out.println("Both are equals");
}

I want to check the two dates but without success.

I also tried to check it like that :

if(date1 >= date2){
    System.out.println("Both are not equals");
}

But it's not working either.

This question is related to java date

The answer is


You can use:

date1.before(date2);

or:

date1.after(date2);

Try using this Function.It Will help You:-

public class Main {   
public static void main(String args[]) 
 {        
  Date today=new Date();                     
  Date myDate=new Date(today.getYear(),today.getMonth()-1,today.getDay());
  System.out.println("My Date is"+myDate);    
  System.out.println("Today Date is"+today);
  if(today.compareTo(myDate)<0)
     System.out.println("Today Date is Lesser than my Date");
  else if(today.compareTo(myDate)>0)
     System.out.println("Today Date is Greater than my date"); 
  else
     System.out.println("Both Dates are equal");      
  }
}

You equals(Object o) comparison is correct.

Yet, you should use after(Date d) and before(Date d) for date comparison.


Read JavaDocs.

Use method:

 Date.compareTo()

You should look at compareTo function of Date class.

JavaDoc