Я хочу реализовать простой фильтр даты, и я чувствую, что это не так просто, как я думал.Простой фильтр даты в каскаде
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
String datestring = dateFormat.format(date);
ExpressionFilter dateFilter = new ExpressionFilter("datefield1 <= datestring", String.class);
inputPipe = new Each(inputPipe,dateFilter);
datefield1
это поле в inputPipe
, который я хочу, чтобы фильтровать на основе текущей даты. Проблема с приведенным выше кодом заключается в том, что он ожидает найти поля, упомянутые в ExpressionFilter
, для присутствия в inputPipe
. datestring
не является полем в inputPipe
, и, следовательно, он не работает.
Также пробовал этот способ, но он выдает ошибку компиляции. Я новичок в Cascading и Java, поэтому, пожалуйста, извините, если я пропущу что-нибудь.
ExpressionFilter dateFilter = new ExpressionFilter("datefield1 <= "+datestring, String.class);
Попробуйте использовать индекс поля вместо имени в inputPipe. Хотя я не понимаю, как сравнение строк будет похоже на сравнение даты. – Amit
Посмотрите следующее решение: http://stackoverflow.com/a/36351176/2421561 – Ambrish