Mule Dataweave日期时间从完全变为短

时间:2017-11-07 15:28:28

标签: java datetime mule esb

我正在尝试从以下格式转换此日期时间字符串:

'Wed, 09 Aug 2017 20:16:59 +0000'

采用以下格式:

'08092017'

我正在使用dataweave。这是我的代码:

order-date:payload.order.date_created 
as :localdatetime {format: "E, dd M yyyy hh:mm:ss Z"} 
as :string {format: "MMddyyyy"},

我仍然得到错误 - 无法强制a:字符串到:localdatetime,原因是:文本'星期三,2017年8月9日20:16:59 +0000'无法在索引8解析

索引8出现在时区偏移量上,但根据java docs,时区被指定为大写Z

2 个答案:

答案 0 :(得分:2)

如果有人从谷歌中绊倒了这个...我的格式不正确。这是更正后的版本:

order-date:payload.order.date_created 
as :localdatetime {format: "E, dd MMM yyyy HH:mm:ss Z"} 
as :string {format: "MMddyyyy"},

答案 1 :(得分:0)

您应该可以使用数据编辑日期格式轻松完成此操作。首先,您需要将其转换为本地日期时间,然后转换为您希望转换为的日期格式。 给出Mulesoft文档中日期格式转换的一些示例 { 日期 : { date1:​​normalize(" 26-JUL-16")as:date {format:" d-MMM-yy"} as:string {format:" yyyy-MM- DD"}, date2:normalize(" 26 / JUL / 16")as:date {format:" d-MMM-yy"} as:string {format:" yyyy-MM- DD"}, date3:normalize(" 26.JUL.16")as:date {format:" d-MMM-yy"} as:string {format:" yyyy-MM- DD"}   } }

请阅读以下链接,了解日期格式。

https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-examples#parse-dates-with-different-separators https://docs.mulesoft.com/mule-user-guide/v/3.8/dataweave-operators#date-time-operations