# Часовые пояса и 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 для управления фиксациями. Дополнительные сведения см. в разделе [Конечные точки REST API для фиксаций Git](/ru/enterprise-server@3.22/rest/git/commits#create-a-commit).

### Использование заголовка `Time-Zone`

Можно указать заголовок, который определяет часовой `Time-Zone` пояс в соответствии со [списком имен из базы данных](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) Olson.

```shell
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 для содержимого репозитория](/ru/enterprise-server@3.22/rest/repos/contents). Заголовок `Time-Zone` определяет часовой пояс, используемый для создания текущей метки времени.

### Использование последнего известного часового пояса для пользователя

Если заголовок `Time-Zone` не указан и вы выполняете вызов API с проверкой подлинности, мы используем последний известный часовой пояс для пользователя, прошедшего проверку подлинности. Последний известный часовой пояс обновляется всякий раз при просмотре веб-сайта GitHub .

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

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