在 mule 4 中将日期时间转换为 salesforce 所需的日期时间格式

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

对于 dateTime

"2022-11-29T19:12:21Z"
从 salesforce 获取 INVALID_TYPE_ON_FIELD_IN_RECORD 错误。因此需要将其转换为 Salesforce 接受的正确格式。

输入:

"2022-11-29T19:12:21Z"

预期输出:

2022-11-29T19:12:21.000+0000

我尝试过这个脚本:

{
     "lastDateTime": "2022-11-29T19:12:21Z" as DateTime {format: "yyyy-MM-dd'T'HH:mm:ss.SSS"}
}

请帮助获得预期的输出格式。

mule dataweave mulesoft anypoint-studio mule4
2个回答
0
投票

DateTime 必须有一个时区,因此您不能直接将输入字符串解析到其中。输入也缺少毫秒,因此无法用毫秒格式解析

.SSS

您可以先转换为 LocalDateTime,然后添加时区(+0:00),然后格式化为包含毫秒和时区的字符串。 DateTime 必须有时区,因此您不能只解析输入

%dw 2.0
output application/json
---
{
    "lastDateTime": ("2022-11-29T19:12:21Z" as LocalDateTime {format: "yyyy-MM-dd'T'HH:mm:ss'Z'"}  ++ |+00:00|) as String {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"}
}

0
投票

“org.mule.extension.salesforce.internal.error.exception.service.SalesforceException:请求的交付日期:值不是所需类型:2023-12-06 INVALID_TYPE_ON_FIELD_IN_RECORD”来自 salesforce 的错误。因此需要将其转换为 Salesforce 接受的正确格式。

输入:“06-12-2023”

预计产出:2023年6月12日

我尝试过这个脚本:

{ “生效日期”:有效负载。 “请求的交货日期”作为日期{格式:“dd-MM-yyyy”}作为字符串{格式:“yyyy-MM-dd”},

} 请帮助获得预期的输出格式。

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