跳至主要内容

时区和 REST API

某些 REST API 端点允许您在请求中指定时区信息。

某些创建新数据的请求(例如创建新提交)允许您在指定或生成时间戳时提供时区信息。

请注意,这些规则仅适用于传递给 API 的数据,而不适用于 API 返回的数据。API 返回的时间戳采用 UTC 时间,ISO 8601 格式。

确定请求的时区

要确定适用 API 调用的时区信息,我们按优先级顺序应用以下规则

  1. 显式提供带时区信息的 ISO 8601 时间戳
  2. 使用 Time-Zone 头部
  3. 使用用户最近一次记录的时区
  4. 在没有其他时区信息时默认使用 UTC

显式提供带时区信息的 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 作为时区。

© . This site is unofficial and not affiliated with GitHub, Inc.