We help IT Professionals succeed at work.

compare to Dates only

mvkraju
mvkraju asked
on
Medium Priority
784 Views
Last Modified: 2008-03-03
Hi,

 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!

Thanks
Comment
Watch Question

Top Expert 2006

Commented:
> 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
CERTIFIED EXPERT
Top Expert 2010

Commented:
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)
UNLOCK SOLUTION
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) {
                  e.printStackTrace();
            }
            
            Date pre = null;
            try {
                  pre = df.parse(wholepath);
            } catch (ParseException e1) {
                  e1.printStackTrace();
            }
            
            Date pas = null;
            try {
                  pas = df.parse(fixDate);
            } catch (ParseException e1) {
                  e1.printStackTrace();
            }

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.

OR

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.