新しいコミットの作成など、新しいデータを作成する一部のリクエストでは、タイムスタンプを指定または生成するときにタイムゾーン情報を提供できます。
これらのルールは、APIに渡されたデータに対してのみ適用され、APIが返すデータには適用されないことに留意してください。 API が返すタイムスタンプは UTC 時間であり、ISO 8601 形式です。
リクエストに対するタイムゾーンの決定
API 呼び出しに適用するタイムゾーン情報を決定するために、優先順位に従って次のルールを適用します。
-
[ISO 8601 タイムスタンプにタイムゾーン情報を明示的に提供する](#explicitly-providing-an-iso-8601-timestamp-with-timezone-information) -
[ `Time-Zone` ヘッダーの使用](#using-the-time-zone-header) -
[ユーザーが最後に認識されたタイムゾーンを使用する](#using-the-last-known-timezone-for-the-user) -
[他のタイムゾーン情報がないため、UTC にデフォルト設定されます](#defaulting-to-utc-without-other-timezone-information)
ISO 8601 タイムスタンプにタイムゾーン情報を明示的に提供する
タイムスタンプを指定できる API 呼び出しの場合、その正確なタイムスタンプを使用します。 これらのタイムスタンプは 2014-02-27T15:05:06+01:00 のようになります。
この例として、コミットを管理する API があります。 詳しくは、「Git コミット用 REST API エンドポイント」をご覧ください。
`Time-Zone` ヘッダーの使用
`Time-Zone` ヘッダーを指定することが可能です。このヘッダーでは、[Olsonデータベースの名前リスト](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)に従ってタイムゾーンを定義します。
curl -H "Time-Zone: Europe/Amsterdam" -X POST http(s)://HOSTNAME/api/v3/repos/github-linguist/linguist/contents/new_file.md
つまり、このヘッダーが定義するタイムゾーンで API 呼び出しが行われた時のタイムスタンプが生成されます。
たとえば、コンテンツを管理するための API によって、追加または変更ごとに git コミットが生成され、タイムスタンプとして現在の時刻が使用されます。 詳しくは、「リポジトリ コンテンツの REST API エンドポイント」をご覧ください。
Time-Zone ヘッダーは、現在のタイムスタンプの生成に使用するタイムゾーンを決定します。
ユーザーが最後に認識されたタイムゾーンを使用する
`Time-Zone` ヘッダーが指定されておらず、API への認証された呼び出しを行う場合、認証されたユーザーが最後に認識されたタイムゾーンが使用されます。 最後に認識されたタイムゾーンは、GitHub Web サイトを閲覧するたびに更新されます。
他のタイムゾーン情報を含まない UTC を既定値に設定する
上記の手順で情報が得られない場合は、UTC をタイムゾーンとして使用します。