如何解决如何在 WSO2 ESB 中获取格式化日期作为属性
我正在尝试使用 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,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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。