Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to compare two dates created as JodaTime LocalDate and LocalDateTime?

Tags:

java

jodatime

LocalDate startDate = new LocalDate(2014,1,2);

LocalDateTime startDateTime = new LocalDateTime(2014,1,2,14,0);

I need to compare startDate and startDateTime with respect to the date, something like this:

// boolean equalDates = startDate.isequal(startDateTime.getDate());

Is it possible to do this?

like image 568
Klausos Klausos Avatar asked Mar 13 '14 10:03

Klausos Klausos


3 Answers

If you just want to compare the date part, you can do it like so:

LocalDate startDate = new LocalDate(2014, 1, 2);
LocalDateTime startDateTime = new LocalDateTime(2014, 1, 2, 14, 0);
LocalDate forCompare = startDateTime.toLocalDate();
System.out.println("equal dates: " + forCompare.equals(startDate));
// equal dates: true

docs

like image 170
Aaron Digulla Avatar answered Oct 24 '22 04:10

Aaron Digulla


LocalDate startDate = new LocalDate(2014,1,2);

LocalDateTime startDateTime = new LocalDateTime(2014,1,2,00,0);

System.out.println(startDate.toDate());
System.out.println(startDateTime.toDate());


if(startDate.toDate().compareTo((startDateTime.toDate()))==0){
 System.out.println("equal");       
}

the output will be:

Thu Jan 02 00:00:00 IST 2014

Thu Jan 02 00:00:00 IST 2014

equal

like image 4
Nirmal Avatar answered Oct 24 '22 03:10

Nirmal


If you want to check if say one date is in between another time frame, say is date1 4hrs in between date2, joda has different classes just for those scenarios you can use:

Hours h = Hours.hoursBetween(date1, date2);
Days s = Days.daysBetween(date1, date2);
Months m = Months.monthsBetween(date1,date2);

http://joda-time.sourceforge.net/apidocs/org/joda/time/base/BaseSingleFieldPeriod.html

like image 2
mel3kings Avatar answered Oct 24 '22 05:10

mel3kings