使用Microsoft Dynamics 365 Web API更新CRM日期时间字段遇400错误
解决Dynamics 365 Web API更新DATE and TIME字段的格式问题
嘿,我对Dynamics 365 Web API的日期字段处理门儿清,你的问题核心就是格式不符合API的强制要求,咱们一步步搞定:
首先明确规则:Dynamics 365 Web API对DATE and TIME类型字段,只认ISO 8601标准格式,你之前试的1-15-2018、mm-dd-yyyy这类格式都会被API拒绝解析,这就是为啥带日期字段就失败、不带就正常的原因。
正确的格式示例
你需要把日期转换成以下两种格式之一:
- UTC时间格式(推荐,避免时区坑):
yyyy-MM-ddTHH:mm:ssZ
比如你要设置2018年1月15日(时间默认0点),请求体里应该这么写:
如果要指定具体时间,比如UTC上午10点,就是:"packfirstday": "2018-01-15T00:00:00Z""packfirstday": "2018-01-15T10:00:00Z" - 带时区偏移的本地时间格式:
yyyy-MM-ddTHH:mm:ss+HH:mm
比如北京时间(UTC+8)的2018年1月15日10点,可写成:"packfirstday": "2018-01-15T10:00:00+08:00"
额外要注意的点
- 确认字段的逻辑名称正确:你用的
packfirstday是不是该字段的逻辑名称?别把显示名称当成逻辑名称用了,逻辑名称可以在Dynamics 365的解决方案→实体→字段里查到。 - 如果业务只需要日期部分,直接把时间设为
00:00:00就行,API会自动处理。 - 测试时可以先用Postman构造请求,确认格式正确能成功更新后,再放到代码里,这样排查问题更高效。
按这个格式改完,应该就能顺利更新DATE and TIME字段了!
内容的提问来源于stack exchange,提问作者I Love Stackoverflow
相关产品推荐
相关产品推荐

