2016-12-05 301 views
0

我一直在四处搜索,无法找到(或无法识别)此问题的解决方案。我对MEL很新,所以请亲切。 :)Mule:Dataweave - 字符串日期格式化

我正在构建一个服务,将接受2个日期作为字符串。我希望能够接受任何(在合理范围内)某个日期的合法字符串表示并将其强制转换为特定格式。

到目前为止;我尝试的一切都会导致错误。为了稍微简化这个过程,我已经开始使用Dataweave中的字符串,而不是现在使用实际的输入。

我有这样的说法: startDate:'2016/11/25 12:00:00'as:localdatetime {format:“yyyy/MM/dd HH:mm:ss”} as:date {format:“ yyyymmdd“},

我收到此回复: 无法强制a:date到a:string,由以下原因引起:Unsupported field:MinuteOfHour。

我也试过这样: 开始日期: '2016年11月25日12:00:00' 为:{日期格式: “年月日”},

我得到这样的回应: 不能强迫一个:字符串到:日期,由文本'2016/11/25 12:00:00'无法在索引4解析。

回答

2

我会用:

startDate: '2016/11/25 12:00:00' as :localdatetime {format: "yyyy/MM/dd HH:mm:ss"} as :string {format: "yyyymmdd"} 

或者:

startDate: '2016/11/25 12:00:00' as :localdatetime {format: "yyyy/MM/dd HH:mm:ss"} as :localdatetime {format: "yyyymm"} 

由于您在初始数据中没有时区,因此我可能不会使用日期/日期时间,因为它们需要时区。

无耻插头:我制作了一个视频处理日期和DataWeave https://www.youtube.com/watch?v=tNCqzFEq9IY&t=2s

+1

谢谢! 问题是2折:匹配模式并将其转换为正确的输出类。 以下是我最终得到的: agreementDate:“$(flowVars.fullPayload.agreementDate)12:00:00”as:localdatetime {format:“yyyy-MM-dd HH:mm:ss”} as:字符串{格式:“yyyymmdd”} –

+1

哦,谢谢你的vid也..书签。 我比例严格的文档更好的例子。 –

0

您可以使用它应该工作的格式“M/d/yyyy”。如果使用MM格式化需要两位数为月

payload.DocDate为:{日期格式: “M/d/YYYY”}