GitHub usa una estrategia que involucra el patrón de desplazamiento de fecha y hora. Cuando realiza una confirmación, la marca de tiempo incluye su desplazamiento desde UTC.
Puede ver esto en los documentos de API para los commits . La muestra que muestran allí utiliza una marca de tiempo de confirmación de "2010-04-10T14:10:01-07:00"
. Esta es una representación válida de ISO8601 de un desplazamiento de fecha y hora. Para la persona que realizó el commit, fue el 10 de abril de 2010 a las 14:10:01. El artículo aparecería en su calendario de confirmación para el sábado 10 de abril.
Git y GitHub no intentan normalizar estos datos al desplazamiento del espectador, pero lo tienen en cuenta al calcular las cadenas de tiempo relativas. Por ejemplo, hay un compromiso en un proyecto en el que trabajo que dice que se hizo "hace 1 hora". Es la 1:30 mi hora, pero cuando paso el mouse sobre ese texto parece que fue hecho a las 2:30. ¿Como puede ser? Porque mi compensación es actualmente -07: 00 y la persona que realizó la confirmación tiene una compensación de -05: 00.
Por lo tanto, no hay una primera hora en todo el sistema del inicio de un día. Dos confirmaciones realizadas exactamente en el mismo momento pueden aparecer en dos días diferentes, incluso en el mismo calendario, si fueron realizadas por personas en diferentes zonas horarias. En otras palabras, un "día de GitHub" es una fecha de calendario virtual "flotante" que se alinea con el confirmador, no necesariamente el espectador.