如何比较创建为JodaTime LocalDate和LocalDateTime的两个日期?

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

我需要比较startDatestartDateTime的日期,如下所示:

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

是否有可能做到这一点?

如果您只想比较日期部分,可以这样做:

 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 

文档

 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"); } 

输出将是:

2014年1月2日00:00:00 IST 2014

2014年1月2日00:00:00 IST 2014

等于

如果你想检查一个日期是否在另一个时间框架之间,比如date1 4hrs在date2之间,joda只有你可以使用的场景有不同的类:

 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