新しいコミットの作成など、新しいデータを作成する一部のリクエストでは、タイムスタンプを指定または生成するときにタイムゾーン情報を提供できます。
これらのルールは、APIに渡されたデータに対してのみ適用され、APIが返す日付には適用されないことに注意してください。 API が返すタイムスタンプは UTC 時間であり、ISO 8601 形式です。
リクエストに対するタイムゾーンの決定
API 呼び出しに適用するタイムゾーン情報を決定するために、優先順位に従って次のルールを適用します。
- ISO 8601 タイムスタンプにタイムゾーン情報を明示的に提供する
Time-Zone
ヘッダーの使用- ユーザーが最後に認識されたタイムゾーンを使用する
- 他のタイムゾーン情報を含まない UTC を既定値に設定する
ISO 8601 タイムスタンプにタイムゾーン情報を明示的に提供する
タイムスタンプを指定できる API 呼び出しの場合、その正確なタイムスタンプを使用します。 これらのタイムスタンプは 2014-02-27T15:05:06+01:00
のようになります。
この例として、コミットを管理する API があります。 詳しくは、「Git コミット用 REST API エンドポイント」を参照してください。
Time-Zone
ヘッダーの使用
Olson データベースの名前の一覧に従ってタイムゾーンを定義する Time-Zone
ヘッダーを指定できます。
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 Web サイトを閲覧するたびに更新されます。
他のタイムゾーン情報を含まない UTC をデフォルトにする
上記の手順で情報が得られない場合は、UTC をタイムゾーンとして使用します。