我正在使用 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"}
}
但我收到一条错误消息,指出它无法将字符串强制为日期。如何将上面的日期更改为正确的格式?
谢谢
参考SimpleDateFormat文档,我们必须定义特定的时区,而不是仅仅定义
Z
。在这个例子中,我们必须转换输入日期:从2017-03-02T17:30:31.377Z
到2017-03-02T17:30:31.377+0700
。然后继续改成期望的格式。
("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"}
完整表达:
{
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"}
}