W jakiej strefie czasowej znajdują się główne serwery GitHub?

11

Z której strefy czasowej działa GitHub na swoich serwerach?

Na przykład zatwierdzenie dokonane w niedz. 2 grudnia 01: 01:00 2012 +0200 jest interpretowane przez GitHub jako zatwierdzenie dokonane 1 grudnia 2012 r. W kalendarzu / wykresie wkładów.

Która jest pierwsza godzina, kiedy zaczyna się nowy dzień?

Ionică Bizău
źródło

Odpowiedzi:

9

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.

Matt Johnson-Pint
źródło
3

To interesujące pytanie, ponieważ Github przechowuje historię niektórych czynności, które wykonujesz każdego dnia, a także ma rekord „najdłuższej serii”.

Zawęziłem to. Zrobiłem zatwierdzenie o 1 rano EST, a drugi o 6 rano EST. Zatwierdzenie 1 w nocy wliczało się do dnia poprzedniego, a 6 rano liczyło się jako dzień.

To odpowiada komentarzowi do tego pytania Also, GitHub servers are in Pacific Time (UTC-8). To wydaje się dość prawdopodobne.

Edycja: Od czasu udzielenia odpowiedzi na to pytanie ustawili się dokładnie na Twoim koncie lokalnym. Dokonałem zatwierdzeń nieco przed i nieco po północy, a są one zapisywane w poprawnych datach na moim wykresie zatwierdzeń.

ashes999
źródło