首页 > 解决方案 > Mule Dataweave:无法将 :string 强制转换为 :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(&quot;yyyy-MM-dd'T'HH:mm:ss.SSS'Z'&quot;)]" 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>

标签: datetimemuledataweave

解决方案


您的原始格式与您尝试转换的格式不同(缺少毫秒):

yyyy-MM-dd'T'HH:mm:ss.SSSZ对比yyyy-MM-dd'T'HH:mm:ssZ


推荐阅读