2016-12-05 297 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」}