[英]Mule Dataweave: Cannot coerce a :string to a :localdatetime
嘗試轉換為日期時間時遇到此錯誤的人:
Exception while executing:
utcTime: (payload as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ssZ" } >> "UTC")
^
Cannot coerce a :string to a :localdatetime, caused by :Text '2018-09-25T13:09:16.258Z' could not be parsed at index 19.
以下是我的代碼:
<flow name="testFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/datetime" doc:name="HTTP"/>
<set-payload value="#[server.dateTime.format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")]" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
utcTime: (payload as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ssZ" } >> "UTC")
}
]]></dw:set-payload>
</dw:transform-message>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>
您的原始格式與您嘗試轉換的格式不同(缺少毫秒):
yyyy-MM-dd'T'HH:mm:ss.SSSZ
與yyyy-MM-dd'T'HH:mm:ssZ
設置有效負載時,請輸入文字字符“ Z”(yyyy-MM-dd'T'HH:mm:ss.SSS'Z')。 因此,您可以將文字轉換回去:
(payload as :localdatetime{format: "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"} as :string {format: "yyyy-MM-dd'T'HH:mm:ss"} >> "UTC")
或者,您可以考慮時區:
<flow name="testFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/datetime" doc:name="HTTP"/>
<set-payload value="#[server.dateTime.format("yyyy-MM-dd'T'HH:mm:ss.SSSZ")]" doc:name="Set Payload"/>
<dw:transform-message doc:name="Transform Message">
<dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
{
utcTime: (payload as :localdatetime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" } as :string {format: "yyyy-MM-dd'T'HH:mm:ss"} >> "UTC")
}
]]></dw:set-payload>
</dw:transform-message>
<logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.