GitHub використовує стратегію, яка включає схему зсуву дати та часу. Коли ви берете на себе зобов’язання, часова мітка включає ваше зміщення від UTC.
Це можна побачити в документах API для Commits . Вибірка, яку вони там показують, використовує позначку часу фіксації "2010-04-10T14:10:01-07:00"
. Це дійсне представлення ISO8601 зсуву дати та часу. Для особи, яка виконує зобов’язання, це було 10 квітня 2010 року о 14:10:01. Елемент відображатиметься у календарі його фіксів на суботу, 10 квітня.
Git і GitHub не намагаються нормалізувати ці дані до компенсації глядача, але вони враховують це при обчисленні відносних часових рядків. Наприклад, є проект, над яким я працюю, який говорить, що він був зроблений "1 годину тому". Це 1:30 мій час, але коли я наведіть курсор на цей текст, схоже, що він був зроблений о 2:30. Як це може бути? Тому що моє зміщення наразі -07: 00, а особа, яка здійснила вчинок, має зміщення -05: 00.
Таким чином, немає загальносистемної першої години початку дня. Два комітети, зроблені в той самий момент часу, можуть з’являтися за два різні дні навіть у тому ж календарі, якщо їх зробили люди в різних часових поясах. Іншими словами, "день GitHub" - це віртуальна "плаваюча" дата календаря, яка вирівнюється до виконавця - не обов'язково для глядача.