Skip to main content

Enterprise Server 3.20 は、現在リリース候補として使用できます。

タイムゾーンと REST API

一部の REST API エンドポイントでは、リクエストでタイムゾーン情報を指定できます。

新しいコミットの作成など、新しいデータを作成する一部のリクエストでは、タイムスタンプを指定または生成するときにタイムゾーン情報を提供できます。

これらのルールは、APIに渡されたデータに対してのみ適用され、APIが返すデータには適用されないことに留意してください。 API が返すタイムスタンプは UTC 時間であり、ISO 8601 形式です。

リクエストに対するタイムゾーンの決定

API 呼び出しに適用するタイムゾーン情報を決定するために、優先順位に従って次のルールを適用します。

  1.        [ISO 8601 タイムスタンプにタイムゾーン情報を明示的に提供する](#explicitly-providing-an-iso-8601-timestamp-with-timezone-information)
    
  2.        [
           `Time-Zone` ヘッダーの使用](#using-the-time-zone-header)
    
  3.        [ユーザーが最後に認識されたタイムゾーンを使用する](#using-the-last-known-timezone-for-the-user)
    
  4.        [他のタイムゾーン情報がないため、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 をタイムゾーンとして使用します。