O GitHub usa uma estratégia que envolve o padrão de compensação de data e hora. Quando você faz uma confirmação, o registro de data e hora inclui seu deslocamento do UTC.
Você pode ver isso nos documentos da API para confirmações . A amostra que eles mostram lá usa um carimbo de data / hora de confirmação "2010-04-10T14:10:01-07:00"
. Esta é uma representação ISO8601 válida de um deslocamento de data e hora. Para a pessoa que executou a confirmação, era 10 de abril de 2010 às 14:10:01. O item apareceria em seu calendário de confirmação para sábado, 10 de abril.
O Git e o GitHub não tentam normalizar esses dados para o deslocamento do visualizador, mas levam isso em consideração ao calcular as seqüências de tempo relativas. Por exemplo, há um commit em um projeto no qual trabalho que diz que foi feito "1 hora atrás". São 13h30, mas quando passo o cursor sobre o texto, parece que ele foi feito às 14h30. Como pode ser? Como meu deslocamento atualmente é -07: 00 e a pessoa que fez o commit tem um deslocamento de -05: 00.
Portanto, não há uma primeira hora em todo o sistema do início de um dia. Duas confirmações feitas no mesmo momento podem aparecer em dois dias diferentes, mesmo no mesmo calendário, se forem feitas por pessoas em fusos horários diferentes. Em outras palavras, um "dia do GitHub" é uma data virtual "flutuante" do calendário que se alinha ao confirmador - não necessariamente ao visualizador.