我正在与WSO2 ESB合作,我想知道如何在日期A和日期B之间获得秒数。基本上,我想计算系统时间和中午12:00之间的时间。你有什么主意吗 ?我发现如何获得天数,但是仅使用Xpath就不会获得成功。我无法使用Java脚本,因此受到Xpath的限制。
谢谢。
基本是将两者都转换为正确的xs:dateTime对象,然后计算差异。这将为您提供dayTimeDuration。将其除以1秒的dayTimeDuration,您的差异将以秒为单位。例:
<property xmlns:xs="http://www.w3.org/2001/XMLSchema" name="now"
expression="concat(get-property('SYSTEM_DATE', 'yyyy-MM-dd'),'T',get-property('SYSTEM_DATE', 'HH:mm:ss')) "/>
<property xmlns:xs="http://www.w3.org/2001/XMLSchema" name="12pm"
expression="concat(get-property('SYSTEM_DATE', 'yyyy-MM-dd'),'T12:00:00')"/>
<property xmlns:xs="http://www.w3.org/2001/XMLSchema" name="diff"
expression="xs:dayTimeDuration(xs:dateTime(syn:get-property('now'))-xs:dateTime(syn:get-property('12pm'))) div xs:dayTimeDuration('PT1S')"/>
请记住,您需要为此在ESB / EI上启用xpath 2.0。您可以通过取消注释[WSO2CARBON_HOM] /repository/conf/synapse.properties文件中的以下行来做到这一点。
#synapse.xpath.dom.failover.enabled=true
还请记住,一旦完成此操作,将突触命名空间中的函数(如get-property)与常规xpath函数结合在一起的xpath表达式将需要使用前缀,如代码示例中所示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句