如何比较创建为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");       
}

输出将是:

周四 1月 02 00:00:00 IST 2014

周四 1月 02 00:00:00 IST 2014

平等

如果您想检查一个日期是否在另一个时间范围之间,例如date1 date2之间的 4 小时 ,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

最新更新