Thực ra, câu hỏi không có ý nghĩa gì nhiều. Xem time(7) để biết tổng quan về các hàm liên quan đến thời gian.
Bất kỳ thiết bị đồng hồ nào cũng trả về thời gian được đo từ một số sự kiện gốc trong quá khứ. Công ước Unix (và Posix) là để đo nó từ Epoch (bắt đầu năm 1970, như là aix's answer giải thích).
Hiển thị một khoảng thời gian bằng UTC hoặc giờ địa phương hoặc sử dụng lịch cách mạng của Pháp hoặc sử dụng lịch Maya hoặc bất kỳ lịch nào khác từ bất kỳ nền văn hóa nào bạn quan tâm. Chỉ hiển thị (hoặc hình thức hiển thị) của thời gian đó thay đổi.
Nó là một chút giống như nói rằng hai, deux, 1 + 1, hoặc , hoặc 10b -với b nghĩa binary- đều đại diện của cùng một số.
Quay lại câu hỏi, man page of clock_gettime đưa ra câu trả lời chính xác cho câu hỏi. Tùy thuộc vào số clk_id
bạn đang yêu cầu và đối với CLOCK_REALTIME
, thời gian được tính từ Thời đại Unix. Đối với các đồng hồ khác (ví dụ: CLOCK_MONOTONIC
), nguồn gốc đã sử dụng không được chỉ định.
(Tôi khá ngạc nhiên bởi số lượng câu hỏi ở đây có thể được trả lời rất nhanh bằng cách nhìn vào người đàn ông . Tôi không hiểu logic của những người dành nhiều thời gian hơn để đặt câu hỏi ở đây để điều chỉnh bằng cách gõ man clock_gettime
trên hộp Linux của họ vào các trang hướng dẫn).
Khái niệm múi giờ chỉ phù hợp với struct tm
khi được trả về bởi localtime & gmtime
(và các hàm liên quan). Thời gian (ví dụ: một số time_t
) được đo từ Kỷ nguyên (như kết quả của time(2), gettimeofday, clock_gettime
với CLOCK_REALTIME
) không có múi giờ.
Phiên bản Unix là ngày 01 tháng 01 năm 1970 0:00 UTC (theo định nghĩa (time_t)0
), Trong múi giờ của tôi (MET = Paris/Pháp) cùng Epoch là Thu Jan 1 01:00:00 MET 1970.
Nguồn
2011-12-16 13:19:35
Tôi không đồng ý với kết luận. các sự kiện thời gian tuyệt đối không có múi giờ. –
@BasileStarynkevitch: Thực ra, tôi không nghĩ có bất đồng nào giữa hai chúng tôi. Múi giờ (UTC) chỉ xuất hiện khi chúng tôi diễn tả "sự kiện thời gian tuyệt đối" có tham chiếu đến ngày/giờ địa phương * ở một địa điểm cụ thể *. – NPE