不能在 Mule 4 中将字符串强制转换为 DatetTme

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

我需要将此字符串:

"2022-04-01T09:56:17.674+00:00"
转换为 DateTime,以便发送给 Salesforce。

我试过这样的:

StartDateTime: payload.planDate as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
而不是“DateTime”,“LocalDateTime”。它们似乎都不起作用。

都给我这个错误:

Cannot coerce String (2022-04-01T09:56:17.674+00:00) to DateTime, caused by: Text '2022-04-01T09:56:17.674+00:00'

你能帮我把字符串转换成日期时间吗?预期结果是字符串中的所有信息。

mule dataweave mule4
1个回答
0
投票

看来您需要使用

Z
来说明时区偏移量中使用的 5 个字符,或者您可以使用
xxx
:

%dw 2.0
output application/json
var planDate="2022-04-01T09:56:17.674+00:00"
---
{
    z: planDate as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"},
    x: planDate as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"}, 
    explicit: planDate as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZZZZZ"} as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSSxxx"}
} 

输出:

{
  "z": "2022-04-01T09:56:17.674Z",
  "x": "2022-04-01T09:56:17.674+00:00",
  "explicit": "2022-04-01T09:56:17.674+00:00"
}

在最后一个案例中,我使用

ZZZZZ
来解析输入,但通过转换为具有显式添加时区偏移量(即使它为零)的格式的字符串来显式格式化输出。

© www.soinside.com 2019 - 2024. All rights reserved.