We help IT Professionals succeed at work.

compare to Dates only

mvkraju asked
Medium Priority
Last Modified: 2008-03-03

 I have 2 java.util.Date objects
I want to compare those 2 dates
I am using the following statement

int result = stDt.compareTo(endDt);

i am wondering sometimes even though both the dates are same, it's returning -1
I don't understanding why it's returning zero sometimes and -1 sometimes
even though both the dates are same.

Basically i need a function which should comapare 2 dates. it should give me true if both the dates have same yyyy-MM-dd, even though they have different HH:mm:ss.
It should compare only date part, not time part.

i guess you got my requirement.

Is there any such method in Java?

I appreciate your help!

Watch Question

Top Expert 2006

> even though both the dates are same.
are you sure about that?
the "Date" does not only represent a date, but also a time (with hours, minutes, seconds and milliseconds).
Mick BarryJava Developer
Top Expert 2010

If you don't care about the time part then you could use java.sql.Date

int result = new java.sql.Date(stDt.getTime()).compareTo(new java.sql.Date(endDt.getTime()));
Unlock this solution and get a sample of our free trial.
(No credit card required)
you cant compare two dates directly, further here is an example which i have done in my old projects..

// systemdate
                 String systDate = Pyear+"/"+Pmonth+"/"+Pdate ;

//user selected date
             String wholepath = year+"/"+month+"/"+day ;

//one fixed date
             String fixDate = "2001/11/24" ;
            DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
            Date sys = null;
            try {
                  sys = df.parse(systDate);
            } catch (ParseException e) {
            Date pre = null;
            try {
                  pre = df.parse(wholepath);
            } catch (ParseException e1) {
            Date pas = null;
            try {
                  pas = df.parse(fixDate);
            } catch (ParseException e1) {

compare it as,

                        if(pre.after(sys)) {
                  else if(pre.before(pas)) {
                  else {

hope i could help!!
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.