我以特定格式创建了日期列表。在该列表中,我添加了一些HTML代码中的元素。另外,我的格式与列表中的格式相同。
List<WebElement> times = driver.findElements(By.tagName("time"));
String timeStamp = new SimpleDateFormat("MMM d, yyyy", Locale.ENGLISH).format(Calendar.getInstance().getTime());
System.out.println(timeStamp);
for (WebElement element: times) {
System.out.println(element.getText());
}
现在,如何获取最近通过的日期并与当前日期进行比较,因为我必须计算过去的日期是多少?
答案 0 :(得分:3)
您可以执行以下操作:
parse
他们到LocalDate
(设置formatter
中的好模式)max
List<WebElement> times = driver.findElements(By.tagName("time"));
LocalDate now = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.ENGLISH);
LocalDate mostRecent = times.stream()
.map(webE -> LocalDate.parse(webE.getText(), formatter))
.filter(date -> date.isBefore(now))
.max(Comparator.comparingLong(LocalDate::toEpochDay))
.orElseThrow(IllegalAccessException::new);
System.out.println(mostRecent);
LocalDate dateBefore;
LocalDate dateAfter;
long daysBetween = DAYS.between(dateBefore, dateAfter);
答案 1 :(得分:1)
尝试使用TreeSet.floor()/ TreeSet.ceiling()。