2017-03-02 80 views
0

我正在使用Anypoint Studio 6.1和Mule 3.8.1,我期待在Dataweave中將以下日期2017-03-02T17:30:31.377Z轉換爲以下格式Thurs, 1 Mar 2017 17:30:31 GMT在數據編輯中將字符串轉換爲日期

的Dataweave代碼目前看起來是這樣的:

{ 
    datetime: "2017-03-02T17:30:31.377Z" as :datetime {format: "EEE, d MMM yyyy HH:mm:ss z"} 
} 

,但我得到一個錯誤說,它不能強迫一個字符串的日期。我如何將上面的日期更改爲正確的格式?

感謝

回答

0

參考的SimpleDateFormat文件,我們需要定義某些時區,而不是隻Z。在這個例子中,我們必須改變輸入日期:從2017-03-02T17:30:31.377Z2017-03-02T17:30:31.377+0700。然後繼續將其更改爲預期的格式。

  1. 變換輸入日期:("2017-03-02T17:30:31.377Z" replace "Z" with "+0700")
  2. 從字符串轉換輸入日期爲DateTime:as :datetime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
  3. 改變日期格式:as :string {format: "EEE, d MMM yyyy HH:mm:ss Z"}

完整表達:

{ 
    datetime: ("2017-03-02T17:30:31.377Z" replace "Z" with "+0700") as :datetime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"} as :string {format: "EEE, d MMM yyyy HH:mm:ss Z"} 
} 
+0

由於,但如何讓它顯示時區格林威治標準時應顯示當使用g小寫z?當我嘗試格式時它仍然顯示錯誤:「EEE,d MMM yyyy HH:mm:ss z」 – user3165854