如何(使用哪个XPath表达式)验证格式为“yyyy-MM-dd HH:mm:ss”的日期是否超过特定小时数?我需要使用Saxon的XPathExpression(XPath 2.0,Java 1.7)进行验证。致电时......
xpathExpression.evaluate(doc, XPathConstants.BOOLEAN)
...如果日期比例更新,我希望它返回true,例如5小时。
假设日期在此XML的dt属性中:
<msgs>
<msg dt="2012-04-04 12:13:14"/>
</msgs>
由于 马库斯
答案 0 :(得分:1)
真正的XPath 2.0解决方案是使用像这样的XPath 2.0表达式:
current-dateTime() - xs:dateTime('2012-04-04T12:13:14')
lt
xs:dayTimeDuration('PT5H')
答案 1 :(得分:0)
如果您想深入了解细节,可以使用子字符串自行计算时间,然后将时间值与当前日期时间进行比较:
您正在分析的时间:
boolean(100*number(substring(//msgs/msg/@dt,12,2)) + 10*number(substring(//msgs/msg/@dt,15,2)) + 1*number(substring(//msgs/msg/@dt,18,2)) > (current time + t*100))
其中当前时间的计算方式相同,t是您要检查的小时数。但是考虑到这两次是在同一天,所以如果你想要同时检查两者,你必须对日期值做同样的事情,所以你最好选择Slanec所做的事情。提示。