# 표준 시간대 및 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 엔드포인트](/ko/enterprise-server@3.22/rest/git/commits#create-a-commit)을(를) 참조하세요.

### `Time-Zone` 헤더 사용

`Time-Zone` 헤더를 제공합니다. 이 헤더는 [Olson 데이터베이스의 이름 목록](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)에 따라 표준 시간대를 정의합니다.

```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 엔드포인트](/ko/enterprise-server@3.22/rest/repos/contents)을(를) 참조하세요.
`Time-Zone` 헤더는 현재 타임스탬프를 생성하는 데 사용되는 표준 시간대를 결정합니다.

### 사용자에 대해 마지막으로 알려진 표준 시간대 사용

`Time-Zone` 헤더가 지정되지 않고 API에 대해 인증된 호출을 수행하는 경우 인증된 사용자에 대해 마지막으로 알려진 표준 시간대를 사용합니다. 마지막으로 알려진 표준 시간대는 GitHub 웹 사이트로 이동할 때마다 업데이트됩니다.

### 다른 표준 시간대 정보 없이 UTC로 기본 설정

위의 단계를 수행해도 정보가 생성되지 않으면 UTC를 표준 시간대로 사용합니다.