Skip to main content

Часовые пояса и 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 для управления фиксациями. Дополнительные сведения см. в разделе Конечные точки REST API для фиксаций Git.

Использование заголовка 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 Enterprise Cloud.

Использование UTC по умолчанию при отсутствии других сведений о часовом поясе

Если приведенные выше действия не приводят к какой-либо информации, мы используем UTC в качестве часового пояса.