【问题标题】:Salesforce REST API get a list of updated recordsSalesforce REST API 获取更新记录列表
【发布时间】:2015-06-30 12:21:04
【问题描述】:

我想要一个账户对象下从特定时间到特定时间的记录列表

比如说我的 api 查询: https://ax1.salesforce.com/services/data/v29.0/sobjects/Account/updated/?start=2015-06-30T06%3A49%3A00%2B00%3A00&end=2015-06-30T16%3A30%3A26%2B00%3A00

在我的销售团队中,我选择的时间是印度时间,即 UTC + 5:30

我在印度时间 6 月 30 日下午 16:45 创建了一个帐户(根据销售人员的说法,这个时间显示在帐户的创建者字段中)

但是对于上面的查询,我选择了开始时间和结束时间分别是上午 06:49 和下午 16:30

我得到了我在印度时间下午 16 点 45 分添加的记录 ID,但它不应该出现在响应中

以下是回复: “身份证”:[ “0019000001QeOINAA3” ], “latestDateCovered”:“2015-06-30T09:00:00.000+0000” }

还有 latestDateCovered 它说只在上午 9 点

我不懂这个系统

有人可以帮助我了解这是如何工作的吗?

【问题讨论】:

    标签: api rest salesforce


    【解决方案1】:

    API REST API 将使用 UTC 日期时间值。

    所以您搜索了以下之间的记录:

    • 2015-06-30 06:49:00 UTC
    • 2015-06-30 16:30:26 UTC

    我的目标是:

    • 2015-06-30 12:19:00 IST
    • 2015-06-30 22:00:26 IST

    因此,在 IST 6 月 30 日下午 16:45 创建的记录将出现在结果中是有意义的。

    尝试检查 API 中的 SystemModStampLastModifiedDate 字段以获取相关记录,因为那里的值也将采用 UTC。

    【讨论】:

    • 是的,非常感谢您的回复。有什么方法可以通过 api 知道 Salesforce 中的时间。例如,如果我将 salesforce 帐户中的时间更改为 IST,是否可以在 REST api 中识别相同的时间
    • 还有一个问题:在 REST api 响应的 LastModifiedDate 字段中,响应如下: latestDateCovered": "2015-06-30T09:00:00.000+0000" 中的 + 符号是什么以上表示,它应该实际上改变了时间,但我得到的只是 UTC 时间而不是 IST 时间请帮助
    • @user1918861 您可以通过 API 获取 User.TimeZoneSidKeyTimezone Apex 类也可能对 UTC 偏移有用。 “+0000”表示 UTC 偏移量。在这种情况下没有偏移量。
    • 我正在使用 java,我没有使用 apex,也没有使用 api 而不是 soap,所以我不能使用它。当我将我的 salesforce 时间更改为 ist 时,我应该得到 +0530 而不是 +0000 对吗?但我只得到+0000?为什么会这样?
    • @user1918861 API 将始终返回 UTC (+0000) 的 DateTimes。您可以使用 REST API 运行 SOQL 查询并检索时区信息。如果您想弄清楚如何做到这一点,也许可以问一个新问题。 salesforce.stackexchange.com 是 Salesforce 特定问题的好地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2022-08-23
    • 1970-01-01
    • 2012-03-04
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多