有人见过这种格式吗:“yyyy-mm-ddThh:mm:ss.SSSSSSZ”?我被六位数毫秒迷惑了(SSSSSS)

问题描述 投票:0回答:1

我目前正在为 Salesforce CDP 开发摄取 API 架构文件。使用邮递员,我尝试使用各种规范来格式化有效负载中的数据类型字段:

  • yyyy-mm-dd'T'hh:mm:ss'Z
  • yyyy-mm-ddThh:mm:ss.SSSZ
  • yyyy-mm-ddThh:mm:ssZ

等等。根据 Salesforce 的 documentation,有效负载数据类型字段应采用 ISO 8601 UTC Zulu 格式,格式为 yyyy-MM-dd'T'HH:mm:ss.SSS'Z (这不起作用,因为当字段值返回空时摄取,尽管呼叫响应是“true”),但是,与 Salesforce 支持人员交谈,他们建议我尝试以下格式:

2019-11-06T06:24:42.558008Z

这样,我终于成功地将一条包含正确填充的日期字段的记录插入到 CDP 数据对象中。但是,我以前从未见过这种格式,并且不确定如何使用它 - 我找不到任何可以用来更好地理解它的文档。 Salesforce 支持也无法提供比“这是有效的格式”更多的解释。

任何帮助或资源将不胜感激。

(另外,还有其他人遇到过 Salesforce CDP 的此类问题吗?该平台很新,有很多错误,而且它只接受上述格式这一事实对我来说似乎有点奇怪......)

datetime salesforce utc iso8601 salesforce-cdp
1个回答
0
投票

这是一个 RFC 3339 日期,ISO 8601 的“配置文件”。

RFC 未指定秒小数部分的小数位数。然而,例如,Python 标准库 使用六位微秒是有先例的:

datetime.isoformat(sep='T', timespec='auto')

返回表示 ISO 8601 格式的日期和时间的字符串:
YYYY-MM-DDTHH:MM:SS.ffffff
,如果微秒不为 0

不同的 Salesforce API 有不同的日期时间格式要求,并且可能非常严格。 (并且并非全部符合 RFC)。例如,Bulk API 无法在六位数微秒下正常工作。除了使数据符合您所使用的 API 的特定期望之外,您几乎无能为力。

© www.soinside.com 2019 - 2024. All rights reserved.