XPath按日期筛选

时间:2020-06-26 12:22:08

标签: java xpath predicate

我需要通过JAVA类按日期过滤记录:

public static final String DATE_TIME = "DateTime"
Date dateNow = setTimeToZero(Calendar.getInstance().getTime());
String date = DATE_TIME_FORMAT.format(dateNow);
Request request = table.createRequest();

DATE_FILTER = XPathFilter.newFilter("date-greater-than(" + Root_Table_DateField.format() + '$date')");

request.setXPathFilter(DATE_FILTER);
request.setXPathParameter(DATE_TIME, date);

RequestResult = reqResult = request.execute();

我要访问的字段定义为DateTime,但是现在我不想要时间,因此我将时间设置为零,这样我就可以过滤日期大于dd-MM-yyyT00的所有字段: 00:00:000

但是它返回一个谓词错误:PredicateException:无效的XPath表达式./dateTime = 26-06-2020T00:00:00:000-意外的'T00:00:00.000'

有任何线索吗?

谢谢

1 个答案:

答案 0 :(得分:0)

尝试添加格式为(xs:date("2020-06-26Z")

的日期
date-greater-than(xs:date("2004-12-25-12:00"), (xs:date("2020-06-26Z"))

参考:https://www.w3.org/TR/xpath-functions-31/