Smartsheet日期格式要求及API调用日期格式报错咨询
Smartsheet日期格式及API严格要求说明
咱们先解答第一个问题:Smartsheet在API交互层面的日期格式有明确标准,核心要求是ISO 8601标准格式——也就是YYYY-MM-DD(纯日期,比如2018-04-19),如果需要包含时间,也支持YYYY-MM-DDTHH:mm:ssZ(UTC时间格式)或者带时区偏移的格式。
至于你遇到的那个InvalidRequestException报错,问题就出在你传入的19/04/2018是地区性日期格式(日/月/年),不符合Smartsheet API对DATE类型的严格要求,具体规则我给你列出来:
- 必须严格遵循ISO 8601格式,纯日期优先用
YYYY-MM-DD,带时间的话要明确时区(比如UTC时间结尾加Z) - API不会自动识别地区性格式(比如
DD/MM/YYYY、MM/DD/YYYY这类),哪怕你的账号地区设置是对应格式也不行 - 日期值不能包含多余的符号或者模糊的格式,必须是清晰的年-月-日顺序
在C#里解决这个问题很简单,只要把你的日期转换成符合要求的字符串就行,给你个示例代码:
// 初始化目标日期 DateTime targetDate = new DateTime(2018, 4, 19); // 转换为Smartsheet API要求的纯日期格式 string smartsheetValidDate = targetDate.ToString("yyyy-MM-dd"); // 如果需要带UTC时间的格式,这么转 string smartsheetValidDateTime = targetDate.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");
把这个格式化后的字符串传入单元格值,就能避免格式报错了。
另外提个小细节:在Smartsheet网页端手动输入日期时,系统会根据你的账号地区设置自动识别格式,但通过API操作时必须严格按ISO 8601来,这是界面操作和API操作的重要区别哦。
内容的提问来源于stack exchange,提问作者luigivampa
相关产品推荐
相关产品推荐

