2011-12-16 42 views

Trả lời

13

Để trích dẫn Wikipedia, Unix Epoch là defined như

thời gian 0:00:00 UTC vào ngày 01 tháng 1 năm 1970 (hoặc 1970-01-01T00: 00: 00Z ISO 8601).

Từ điều này, sau đó bất kỳ tham chiếu nào đến "Kỷ nguyên" đều ngụ ý UTC.

+0

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ờ. –

+1

@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

6

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.

+2

Sự nhầm lẫn của tôi đến chính xác khi đọc trang người đàn ông. Nó chỉ nói 'Epoch' và không đưa ra định nghĩa, trong khi thời gian rõ ràng cho thấy kỷ nguyên như UTC dựa. Và trong cả hai phần của câu hỏi của tôi, tôi cho biết tôi đang đo lường _from_ một thời gian, vì vậy tôi không thấy câu hỏi đó không có ý nghĩa như thế nào. –

+0

Xin lỗi, Epoch không dựa trên UTC. Như bất kỳ thời điểm chính xác nào khác. Bạn không thể nói rằng các sự kiện 9/11/2001 trong năm mới xảy ra ở UTC, chúng chỉ xảy ra vào một thời điểm chính xác (có đại diện trong UTC không giống như biểu diễn của nó khi sử dụng lịch cách mạng của Pháp). Tôi nhấn mạnh: một sự kiện thời gian nhất định không có múi giờ! Những gì bạn có thể nói là Đại Kỷ Nguyên, được đại diện trong UTC, là năm 1970, 01 tháng một 0:00. Sử dụng lịch cách mạng Pháp cùng Epoch là 11 Nivôse một 178 (và tôi quên làm thế nào để tính toán giờ tại Paris trong thời gian đó). Nhưng đó là cùng một sự kiện thời gian Epoch! –

+0

Xin lỗi, ý tôi là ở New York (không phải năm mới!) –

0

nó phụ thuộc ..

nếu bạn gọi clock_gettime(1), rất có thể, thời đại là thời điểm khởi động Linux của bạn.

Các vấn đề liên quan