GitHub używa strategii, która obejmuje wzorzec przesunięcia daty i czasu. Kiedy dokonujesz zatwierdzenia, znacznik czasu obejmuje przesunięcie względem UTC.
Możesz to zobaczyć w dokumentach API dla Commits . Próbka, którą tam pokazują, używa znacznika czasu zatwierdzenia wynoszącego "2010-04-10T14:10:01-07:00"
. Jest to poprawna reprezentacja ISO8601 przesunięcia daty i czasu. Dla osoby wykonującej zatwierdzenie był to 10 kwietnia 2010 o 14:10:01. Artykuł pojawi się w jego kalendarzu zatwierdzeń na sobotę, 10 kwietnia.
Git i GitHub nie próbują normalizować tych danych względem przesunięcia przeglądarki, ale uwzględniają je przy obliczaniu względnych ciągów czasowych. Na przykład istnieje zatwierdzenie projektu, nad którym pracuję, który mówi, że został on wykonany „1 godzinę temu”. Czas jest 1:30, ale kiedy najecham kursorem na ten tekst, wygląda na to, że został napisany o 2:30. Jak to możliwe? Ponieważ moje przesunięcie wynosi obecnie -07: 00, a osoba, która dokonała zatwierdzenia, ma przesunięcie -05: 00.
Nie ma zatem systemowej pierwszej godziny rozpoczęcia dnia. Dwa zatwierdzenia dokonane dokładnie w tym samym momencie mogą pojawić się w dwóch różnych dniach, nawet w tym samym kalendarzu, jeśli zostały dokonane przez ludzi w różnych strefach czasowych. Innymi słowy, „dzień GitHub” to wirtualna „ruchoma” data kalendarza, która dopasowuje się do osoby odpowiedzialnej - niekoniecznie widza.