2012-04-04 1 views
2

「yyyy-MM-dd HH:mm:ss」という形式の日付が特定の時間数よりも古いことを確認する方法はありますか。私は、SaxonのXPathExpression(XPath 2.0、Java 1.7)を使用して検証する必要があります。電話するとき...XPath 2を使用して日付から時刻を検証する

xpathExpression.evaluate(doc, XPathConstants.BOOLEAN) 

...日付が正式に5時間以上であれば、真に戻したいと思います。

日は、このXMLのDT属性であると言うことができます:

<msgs> 
    <msg dt="2012-04-04 12:13:14"/> 
</msgs> 

おかげ マルクス

答えて

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はチェックしている時間数です。しかし、これは2つの時間が同じ日に行われていることを考慮しているため、両方をチェックしたい場合は、日付の値を同じにしなければならないので、Slanecのライン提案する。

+0

感謝。私はより単純なJavaソリューションに行くだろう:) –

1

真のXPath 2.0ソリューションは、このようのXPath 2.0式を使用することです:

current-dateTime() - xs:dateTime('2012-04-04T12:13:14') 
lt 
    xs:dayTimeDuration('PT5H') 
関連する問題