某些创建新数据的请求(例如创建新提交)允许您在指定或生成时间戳时提供时区信息。
请注意,这些规则仅适用于传递给 API 的数据,而不适用于 API 返回的数据。API 返回的时间戳采用 UTC 时间,ISO 8601 格式。
确定请求的时区
要确定适用 API 调用的时区信息,我们按优先级顺序应用以下规则
显式提供带时区信息的 ISO 8601 时间戳
对于允许指定时间戳的 API 调用,我们使用该精确时间戳。这类时间戳的格式类似于 2014-02-27T15:05:06+01:00。
一个例子是用于管理提交的 API。更多信息请参阅 Git 提交的 REST API 端点。
使用 Time-Zone 头部
可以提供 Time-Zone 头部,根据Olson 数据库中的时区名称列表来定义时区。
curl -H "Time-Zone: Europe/Amsterdam" -X POST https://api.github.com/repos/github-linguist/linguist/contents/new_file.md
这意味着我们会根据此头部定义的时区,为您发起 API 调用的那一刻生成时间戳。
例如,管理内容的 API 会为每一次添加或修改生成一个 git 提交,并使用当前时间作为时间戳。更多信息请参阅 仓库内容的 REST API 端点。Time-Zone 头部将决定生成该当前时间戳所使用的时区。
使用用户最近一次记录的时区
如果未指定 Time-Zone 头部且您进行的是已认证的 API 调用,我们会使用已认证用户最近一次记录的时区。该时区会在您浏览 GitHub 网站时更新。
在没有其他时区信息时默认使用 UTC
如果上述步骤仍未得到任何信息,我们将使用 UTC 作为时区。