@Override
  public Predicate<FileInfo> get() {
    return FileInfo -> {
      try {
        Long time = mGetter.apply(FileInfo);
        Interval interval = Interval.between(time, time + 1);
        return mInterval.intersect(interval).isValid();
      } catch (RuntimeException e) {
        LOG.debug("Failed to filter: ", e);
        return false;
      }
    };
  }
@Test
  public void testDatePredicateInterval() throws ParseException {

    FileFilter filter =
        FileFilter.newBuilder().setName("lastModifiedDate").setValue("2020/01/01, 2023/09/14")
                  .build();
    FileInfo info = new FileInfo();
    info.setLastModificationTimeMs(mDateFormat.parse("2021/09/15").getTime());
    assertTrue(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2019/09/05").getTime());
    assertFalse(FilePredicate.create(filter).get().test(info));

    Date d = mDateFormat.parse("2023/09/16");
    info.setLastModificationTimeMs(d.getTime());
    assertFalse(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2020/01/01").getTime());
    assertTrue(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2023/09/14").getTime() - 1);
    assertTrue(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2023/09/13").getTime());
    assertTrue(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2023/09/14").getTime());
    assertFalse(FilePredicate.create(filter).get().test(info));
    info.setLastModificationTimeMs(mDateFormat.parse("2023/09/14").getTime() + 1);
    assertFalse(FilePredicate.create(filter).get().test(info));
  }