在dataweave中将字符串转换为日期

时间:2017-03-02 20:48:14

标签: mule anypoint-studio dataweave

我正在使用Anypoint Studio 6.1和Mule 3.8.1,我希望将以下日期2017-03-02T17:30:31.377Z转换为Dataweave中的以下格式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"}
}

但是我收到一条错误消息,说它无法将字符串强制转换为日期。如何将上述日期更改为正确的格式?

由于

1 个答案:

答案 0 :(得分:0)

参考SimpleDateFormat文档,我们必须定义特定时区而不是wrap(fn) { return function(){ ... // do something fn() } } 。在此示例中,我们必须转换输入日期:从functionZ。然后继续将其更改为预期的格式。

  1. 转换输入日期:2017-03-02T17:30:31.377Z
  2. 将输入日期从String转换为DateTime:2017-03-02T17:30:31.377+0700
  3. 更改日期格式:("2017-03-02T17:30:31.377Z" replace "Z" with "+0700")
  4. 完整表达:

    as :datetime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}