在 Java Joda Time 中使用“isBefore”的仅日期比较

2022-09-03 17:54:58

有没有办法只将日期与 isBefore 函数的 DateTime 对象进行比较?

例如,

DateTime start = new DateTime(Long.parseLong(<someInput>));
DateTime end   = new DateTime(Long.parseLong(<someInput>));

现在,当我这样做时,

while (start.isBefore(end)) { 
   // add start date to the list
   start = start.plusDays(1);
}  

这会导致不一致的行为(对于我的场景),因为它也考虑了时间,而我想要的是仅使用isBefore比较日期。有没有办法做到这一点?

请让我知道。

谢谢!


答案 1

如果只想比较日期,则可能要使用类,而不是 .LocalDateDateTime

JodaTime文档相当不错:http://joda-time.sourceforge.net/apidocs/org/joda/time/LocalDate.html


答案 2

另一种策略是格式化它。

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
DateTime newStart = df.parse(start);
DateTime newEnd = df.parse(end);

while (newStart.isBefore(newEnd)) { 
  // add start date to the list
  newStart = newStart.plusDays(1);
}