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

Mule 在dataweave中将字符串转换为日期,mule,anypoint-studio,dataweave,Mule,Anypoint Studio,Dataweave,我正在使用Anypoint Studio 6.1和Mule 3.8.1,我希望在Dataweave中将以下日期2017-03-02T17:30:31.377Z转换为以下格式2017年3月1日星期四17:30:31 GMT Dataweave代码当前如下所示: { datetime: "2017-03-02T17:30:31.377Z" as :datetime {format: "EEE, d MMM yyyy HH:mm:ss z"} } 但是我得到一个错误,它不能强制字符串为日期。

我正在使用Anypoint Studio 6.1和Mule 3.8.1,我希望在Dataweave中将以下日期
2017-03-02T17:30:31.377Z
转换为以下格式
2017年3月1日星期四17:30:31 GMT

Dataweave代码当前如下所示:

{
    datetime: "2017-03-02T17:30:31.377Z" as :datetime {format: "EEE, d MMM yyyy HH:mm:ss z"}
}
但是我得到一个错误,它不能强制字符串为日期。如何将上面的日期更改为正确的格式

感谢参考文档,我们必须定义特定的时区,而不仅仅是
Z
。在本例中,我们必须将输入日期:从
2017-03-02T17:30:31.377Z
转换为
2017-03-02T17:30:31.377+0700
。然后继续将其更改为预期格式

  • 转换输入日期:
    (“2017-03-02T17:30:31.377Z”将“Z”替换为“+0700”)
  • 将输入日期从字符串转换为日期时间:
    as:DateTime{format:“yyyy-MM-dd'HH:MM:ss.SSSZ”}
  • 将日期格式更改为:
    as:string{format:“EEE,d MMM yyy 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"}
    }
    
    参考文档,我们必须定义特定的时区,而不仅仅是
    Z
    。在本例中,我们必须将输入日期:从
    2017-03-02T17:30:31.377Z
    转换为
    2017-03-02T17:30:31.377+0700
    。然后继续将其更改为预期格式

  • 转换输入日期:
    (“2017-03-02T17:30:31.377Z”将“Z”替换为“+0700”)
  • 将输入日期从字符串转换为日期时间:
    as:DateTime{format:“yyyy-MM-dd'HH:MM:ss.SSSZ”}
  • 将日期格式更改为:
    as:string{format:“EEE,d MMM yyy 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"}
    }
    

    谢谢,但是我如何让它以GMT的形式显示时区,就像使用小写z时应该显示的那样?当我尝试格式化时,它仍然显示错误:“EEE,d MMM yyy HH:mm:ss z”谢谢,但是我如何让它以GMT的形式显示时区,就像使用小写z时应该显示的那样?当我尝试格式化时,它仍然显示错误:“EEE,d MMM yyy HH:mm:ss z”