我试图使用wso2 ESB 4.9.0格式化有效负载中的日期。我可以使用以下方法格式化系统数据e。
<property expression="get-property('SYSTEM_DATE','MM-dd-yyyy')"
name="uri.var.TransactionDate" xmlns:ns="http://org.apache.synapse/xsd"/>
但我需要的是格式属性值,如下所示,但格式不正确。
<property expression="get-property('uri.var.TransactionDate','MM-dd-yyyy')"
name="TransactionDate" xmlns:ns="http://org.apache.synapse/xsd"/>
使用这样的格式仅适用于SYSTEM_DATE属性。如果你想格式化你自己的财产,你必须使用其他技术。例如,XSLT[1]中提供了几个日期格式函数。虽然不那么漂亮,但如果传入的事务日期总是相同的长度,您也可以使用子字符串[2][3]的串联。例如,假设您的uri.var.TransActionDate为yyyyMMdd,并且您希望格式化为MM-dd-yyyy:
<property expression="concat(substring($ctx:uri.var.TransActionDate, 5, 2), '-', substring($ctx:uri.var.TransActionDate, 7, 2), '-', substring($ctx:uri.var.TransActionDate, 1, 4))" name="TransactionDate"/>
希望这能让你走上正轨!
[1]https://www.oreilly.com/library/view/xslt-2nd-edition/9780596527211/ch04s05.html[2]https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/substring[3]https://developer.mozilla.org/en-US/docs/Web/XPath/Functions/concat