GitHub sử dụng chiến lược liên quan đến mẫu bù ngày-giờ. Khi bạn thực hiện một cam kết, dấu thời gian bao gồm phần bù của bạn từ UTC.
Bạn có thể thấy điều này trong các tài liệu API cho các Cam kết . Mẫu họ hiển thị ở đó sử dụng dấu thời gian cam kết "2010-04-10T14:10:01-07:00"
. Đây là một đại diện ISO8601 hợp lệ của thời gian bù ngày. Đối với người thực hiện cam kết, đó là ngày 10 tháng 4 năm 2010 lúc 14:10:01. Mục này sẽ hiển thị trên lịch cam kết của anh ấy vào Thứ Bảy, ngày 10 tháng Tư.
Git và GitHub không cố gắng bình thường hóa dữ liệu này thành phần bù của người xem, nhưng họ có tính đến nó khi tính các chuỗi thời gian tương đối. Ví dụ, có một cam kết về một dự án mà tôi làm việc nói rằng nó đã được thực hiện "1 giờ trước". Đó là 1:30 thời gian của tôi, nhưng khi tôi di chuột qua văn bản đó, có vẻ như nó được thực hiện lúc 2:30. Làm thế nào mà có thể được? Bởi vì phần bù của tôi hiện là -07: 00 và người thực hiện cam kết có phần bù là -05: 00.
Vì vậy, không có giờ đầu tiên trên toàn hệ thống bắt đầu một ngày. Hai cam kết được thực hiện tại cùng một thời điểm có thể xuất hiện vào hai ngày khác nhau ngay cả trên cùng một lịch, nếu chúng được thực hiện bởi những người ở các múi giờ khác nhau. Nói cách khác, "ngày GitHub" là một ngày theo lịch "nổi" ảo phù hợp với người đi làm - không nhất thiết phải là người xem.