如何在 WSO2 ESB 中获取格式化日期作为 属性

How to get a formatted date as a Property in the WSO2 ESB

我正在尝试使用 wso2 ESB 4.9 格式化有效负载中的日期。0.I 可以使用以下方法格式化 系统数据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