Skip to main content

Fusos horários e a API REST

Alguns pontos de extremidade da API REST permitem que você especifique informações de fuso horário com sua solicitação.

Algumas solicitações que criam novos dados, como a criação de um novo commit, permitem que você forneça informações do fuso horário ao especificar ou gerar carimbos de data/hora.

Observe que essas regras se aplicam somente a dados passados para a API, não a dados retornados pela API. Os carimbos de data/hora retornados pela API estão em formato UTC, ISO 8601.

Determinando o fuso horário de uma solicitação

Para determinar as informações do fuso horário das chamadas de API aplicáveis, empregamos as seguintes regras em ordem de prioridade:

  1. Fornecer explicitamente uma marca de tempo ISO 8601 com informações de fuso horário
  2. Usar o cabeçalho Time-Zone
  3. Usar o último fuso horário conhecido para o usuário
  4. Definir como padrão UTC sem outras informações de fuso horário

Fornecer explicitamente uma marca de tempo ISO 8601 com informações de fuso horário

Para chamadas de API que permitem que uma marca de tempo seja especificada, usamos essa marca de tempo exata. Esses carimbos de data/hora se parecem com 2014-02-27T15:05:06+01:00.

Um exemplo disso é a API para gerenciar commits. Para saber mais, confira Pontos de extremidade da API REST para commits do Git.

Usar o cabeçalho Time-Zone

É possível fornecer um cabeçalho Time-Zone que define um fuso horário de acordo com a lista de nomes do banco de dados Olson.

curl -H "Time-Zone: Europe/Amsterdam" -X POST https://api.github.com/repos/github-linguist/linguist/contents/new_file.md

Isso significa que geramos um carimbo de data/hora no momento em que sua chamada de API é feita no fuso horário que esse cabeçalho define.

Por exemplo, a API para gerenciar conteúdo gera um commit do git para cada adição ou alteração e usa a hora atual como carimbo de data/hora. Para saber mais, confira Pontos de extremidade da API REST para conteúdos de repositório. O cabeçalho Time-Zone determinará o fuso horário usado para gerar esse carimbo de data/hora atual.

Usar o último fuso horário conhecido para o usuário

Se nenhum cabeçalho Time-Zone for especificado e você fizer uma chamada autenticada para a API, nós usaremos o último fuso horário conhecido para o usuário autenticado. O último fuso horário conhecido é atualizado sempre que você navegar no site de GitHub.

Definir como padrão UTC sem outras informações de fuso horário

Se as etapas acima não resultarem em nenhuma informação, usaremos UTC como o fuso horário.