【问题标题】:Update Salesforce: Date format Dataweave更新 Salesforce:日期格式 Dataweave
【发布时间】:2019-07-12 08:09:11
【问题描述】:

我有一个字段 dateLastPaid 到 JSON 有效负载中。该字段的类型是格式为 2019-05-10T00:00:00.000-0300 的日期。 Salesforce API 需要一个仅限日期的字段,但我无法转换它。

我尝试使用 payload.dateLastPaid 作为 :date{format: "yyyy-MM-dd"} 但它仍然添加时间。

你能帮帮我吗?

【问题讨论】:

    标签: salesforce nsdateformatter date-format dataweave mulesoft


    【解决方案1】:

    问题是尝试格式化日期。您可以格式化字符串,或使用格式解析字符串,但在 DataWeave 或 Java 中,日期和日期时间没有格式。它在将日期从初始字符串格式转换为日期时间之后再尝试将其格式化回所需的格式。

    我假设日期在 JSON 字符串属性中,因为您没有显示实际示例。

    输入:

    {
      "dateLastPaid" :  "2019-05-10T00:00:00.000-0300"
    }
    

    DataWeave 脚本:

    %dw 1.0
    %output application/json
    ---
    {
      date: ( payload.dateLastPaid as :date {format: "yyyy-MM-dd'T'HH:mm:ss.SSSZ"})  as :string {format: "yyyy-MM-dd"} 
    }
    

    输出:

    {
      "date": "2019-05-10"
    }
    

    【讨论】:

    • 是的,它是 JSON 有效负载中的一个字段。该字段是一个字符串。我了解您向我解释,但是...我需要调用 API。这个 API 有一个 RAML,在这个 RAML 中,我需要发送的字段是仅日期类型。当我尝试发送字符串时,API 失败。
    【解决方案2】:

    此脚本将输出字符串"2019-05-10"

    %dw 2.0
    output application/json
    var array = [0,1,2,3,4,5,6,7,8,9]
    ---
    array map ((item, index) ->
        payload.dateLastPaid[index]
    ) joinBy ""
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      相关资源
      最近更新 更多