为什么传递给 CRM 操作的 DateTime 比我传递的时间少 6 小时?
Why is DateTime passed to a CRM action 6 hours less than what I pass in?
我有一个操作需要两个必需的日期时间字段,StartDate
和 EndDate
。从 API 开始,当我调用此操作时,这些字段按如下方式传递:
{
"StartDate":"2018-07-01T00:00:00Z",
"EndDate":"2019-06-30T00:00:00Z"
}
然而,当他们点击操作时,我在调试输入参数时得到以下正确结果:
Start Date - 6/30/2018 6:00 PM | End Date - 6/29/2019 6:00 PM
所以开始日期从 2018 年 7 月 1 日午夜到 2018 年 6 月 30 日下午 6 点,结束日期从 2019 年 6 月 30 日午夜到 2019 年 6 月 29 日下午 6 点。我确保我们的 API 传递了正确的数据,并确认没有其他 workflows/actions/plugins 可能会修改此日期。
为什么这个日期调整了 6 小时?
这可能是时区转换。当您在服务器上拦截日期时间时,它已转换为 UTC。
Behavior and format of the date and time attribute.
我想你的日期是用户本地的(默认),这将:
- Stores the date and time value as UTC value in the system.
- The retrieve operation returns the UTC value.
当您以编程方式检索值时,您需要将值转换回本地时区以获取您输入的原始值,CRM 用户界面会执行此操作。
如果这种行为更适合您的用例,您可以将字段切换为仅日期或独立于时区。如果您有很多字段要更新,您可以通过编程方式执行此操作。
我有一个操作需要两个必需的日期时间字段,StartDate
和 EndDate
。从 API 开始,当我调用此操作时,这些字段按如下方式传递:
{
"StartDate":"2018-07-01T00:00:00Z",
"EndDate":"2019-06-30T00:00:00Z"
}
然而,当他们点击操作时,我在调试输入参数时得到以下正确结果:
Start Date - 6/30/2018 6:00 PM | End Date - 6/29/2019 6:00 PM
所以开始日期从 2018 年 7 月 1 日午夜到 2018 年 6 月 30 日下午 6 点,结束日期从 2019 年 6 月 30 日午夜到 2019 年 6 月 29 日下午 6 点。我确保我们的 API 传递了正确的数据,并确认没有其他 workflows/actions/plugins 可能会修改此日期。
为什么这个日期调整了 6 小时?
这可能是时区转换。当您在服务器上拦截日期时间时,它已转换为 UTC。
Behavior and format of the date and time attribute.
我想你的日期是用户本地的(默认),这将:
- Stores the date and time value as UTC value in the system.
- The retrieve operation returns the UTC value.
当您以编程方式检索值时,您需要将值转换回本地时区以获取您输入的原始值,CRM 用户界面会执行此操作。
如果这种行为更适合您的用例,您可以将字段切换为仅日期或独立于时区。如果您有很多字段要更新,您可以通过编程方式执行此操作。