std::chrono::time_point
Defined in header <chrono> | ||
|---|---|---|
template<
class Clock,
class Duration = typename Clock::duration
> class time_point;
| (since C++11) |
Class template std::chrono::time_point represents a point in time. It is implemented as if it stores a value of type Duration indicating the time interval from the start of the Clock's epoch.
Clock must meet the requirements for Clock or be std::chrono::local_t (since C++20).
Member types
| Member type | Definition |
|---|---|
clock | Clock, the clock on which this time point is measured |
duration | Duration, a std::chrono::duration type used to measure the time since epoch |
rep | Rep, an arithmetic type representing the number of ticks of the duration |
period | Period, a std::ratio type representing the tick period of the duration |
Member functions
| constructs a new time point (public member function) |
|
| returns the time point as duration since the start of its clock (public member function) |
|
| modifies the time point by the given duration (public member function) |
|
|
(C++20) | increments or decrements the duration (public member function) |
|
[static] | returns the time point corresponding to the smallest duration (public static member function) |
|
[static] | returns the time point corresponding to the largest duration (public static member function) |
Non-member functions
specializes the std::common_type trait (class template specialization) |
|
| performs add and subtract operations involving a time point (function template) |
|
| compares two time points (function template) |
|
| converts a time point to another time point on the same clock, with a different duration (function template) |
|
|
(C++17) | converts a time_point to another, rounding down (function template) |
|
(C++17) | converts a time_point to another, rounding up (function template) |
|
(C++17) | converts a time_point to another, rounding to nearest, ties to even (function template) |
Example
#include <iostream>
#include <iomanip>
#include <ctime>
#include <chrono>
int main()
{
std::chrono::system_clock::time_point now = std::chrono::system_clock::now();
std::time_t now_c = std::chrono::system_clock::to_time_t(now - std::chrono::hours(24));
std::cout << "24 hours ago, the time was "
<< std::put_time(std::localtime(&now_c), "%F %T") << '\n';
std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now();
std::cout << "Hello World\n";
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
std::cout << "Printing took "
<< std::chrono::duration_cast<std::chrono::microseconds>(end - start).count()
<< "us.\n";
}Possible output:
24 hours ago, the time was 2011-10-25 12:00:08 Hello World Printing took 84us.
See also
|
(C++11) | a time interval (class template) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/chrono/time_point