std::chrono::time_point::time_since_epoch()
trả về một duration
, được gọi một số time_point
trong quá khứ. Khi nào là time_point
? Nó phụ thuộc vào việc thực hiện C++ hoặc nó được định nghĩa bởi chuẩn C++? Hoặc đó là một tiêu chuẩn thực tế để thiết lập kỷ nguyên vào ngày 1 tháng 1 năm 1970 UTC?Khi nào là tiêu chuẩn :: chrono epoch?
Trả lời
Đây là chức năng của cả hai số clock
cụ thể là time_point
là và thực hiện clock
đó. Tiêu chuẩn này quy định cụ thể ba đồng hồ khác nhau:
system_clock
steady_clock
high_resolution_clock
Và tiêu chuẩn không xác định thời đại đối với bất kỳ của những đồng hồ.
Người lập trình (bạn) cũng có thể tạo đồng hồ của riêng họ, có thể hoặc không thể chỉ định kỷ nguyên.
Có một tiêu chuẩn không chính thức (không chính thức) rằng std::chrono::system_clock::time_point
có kỷ nguyên phù hợp với Unix Time. Điều này được định nghĩa là khoảng thời gian đã trôi qua kể từ 00:00:00 Giờ Quốc tế Phối hợp (UTC), Thứ Năm, ngày 1 tháng 1 năm 1970, không tính giây nhảy vọt.
Fwiw, here is a date/time library tận dụng lợi thế của tiêu chuẩn này.
Không có tiêu chuẩn không thực tế cho hai đồng hồ được chỉ định khác. Ngoài ra, high_resolution_clock
được phép là bí danh loại cho system_clock
hoặc steady_clock
.
Trên OS X, high_resolution_clock
là bí danh loại cho steady_clock
và steady_clock
là một số nano giây kể từ khi máy tính khởi động (không có mối quan hệ nào với UTC).
Cho tương lai độc giả: Bạn có danh sách các liên kết đến tài liệu chính thức mà người ta có thể kiểm tra xem điều này có đúng không? – MikeMB
Dưới đây là tất cả các giấy tờ C++: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/ Trong số các tài liệu này sẽ là bản nháp của tiêu chuẩn C++ có chứa đặc tả chính thức cho '
Cảm ơn bạn rất nhiều, tôi cần phải chính xác hơn: Tôi có nghĩa là nếu có bất kỳ tài liệu nào về hành vi không thực tế của các triển khai thư viện chuẩn khác nhau liên quan đến 'std :: chrono :: system_clock'. Điều đó sẽ tránh được sự cần thiết phải viết các unittests cụ thể của nền tảng để xác minh hành vi đó. – MikeMB
- 1. Làm thế nào để chuyển đổi một dấu thời gian epoch phân đoạn (đôi) thành một tiêu chuẩn :: chrono :: time_point?
- 2. Nhận POSIX epoch là system_clock :: time_point
- 3. Làm thế nào để chuyển đổi thời gian epoch thành ngày và giờ chuẩn?
- 4. "epoch" trong keras.models.Model.fit là gì?
- 5. Tiêu chuẩn như thế nào là std :: thread?
- 6. u_char có phải là tiêu chuẩn không?
- 7. Ngoại lệ tiêu chuẩn Scala là gì?
- 8. Khi nào ECMAScript v 6 trở thành tiêu chuẩn
- 9. Tiêu chuẩn mã hóa cho MVC - Chúng có phải là tiêu chuẩn chính thức không?
- 10. typedef sau có nghĩa là gì trong chrono :: duration?
- 11. Điều trị trục là ngày/giờ (epoch)
- 12. std :: chrono và cout
- 13. Có phải "chính" là tên chi nhánh tiêu chuẩn trong git hay chỉ là thực hành tiêu chuẩn?
- 14. Tài liệu tiêu chuẩn
- 15. Tiêu chuẩn cho typedef'ing
- 16. Hibernate Tiêu chuẩn Subquery
- 17. Tại sao không tiêu chuẩn hibernate Tiêu chuẩn generics
- 18. JQuery datepicker Set Value As Time Epoch
- 19. Nhận NaN âm trên g ++ 4.4.3, là tiêu chuẩn này?
- 20. HATEOAS Rel - Bất kỳ tiêu chuẩn nào?
- 21. Sự khác biệt chính giữa tiêu chuẩn mã hóa PSR-2 và tiêu chuẩn mã Symfony2 cho phpcs là gì?
- 22. Thùng chứa tiêu chuẩn C++ 11 là "cuối cùng"?
- 23. Tại sao jQuery không phải là tiêu chuẩn W3C?
- 24. Tiêu chuẩn phải là gì đối với URL ReSTful?
- 25. Tính phức tạp của tiêu chuẩn :: find_end là Big-O
- 26. Python MixIn tiêu chuẩn
- 27. tiêu hóa/HMAC là một phần của ruby chuẩn lib
- 28. Tài liệu tiêu chuẩn mục tiêu-C
- 29. Tiêu chuẩn mã hóa mục tiêu-C?
- 30. Tiêu chuẩn cho Clojure?
'epoch' nói chung đại diện cho điểm bắt đầu của đồng hồ. Có nhiều hơn một đồng hồ trong 'C++ 11 chrono'. – bolov
http://en.cppreference.com/w/cpp/chrono/time_point/time_since_epoch – SChepurin
Bài viết này giải thích điều này: http://www.informit.com/articles/article.aspx?p=1881386&seqNum=2 – newbie