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

问题描述 投票:0回答:1

我正在使用 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"}
}

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

谢谢

mule anypoint-studio dataweave
1个回答
0
投票

参考SimpleDateFormat文档,我们必须定义特定的时区,而不是仅仅定义

Z
。在这个例子中,我们必须转换输入日期:从
2017-03-02T17:30:31.377Z
2017-03-02T17:30:31.377+0700
。然后继续改成期望的格式。

  1. 转换输入日期:
    ("2017-03-02T17:30:31.377Z" replace "Z" with "+0700")
  2. 将输入日期从字符串转换为日期时间:
    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"}
}
© www.soinside.com 2019 - 2024. All rights reserved.