std::chrono::time_point
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <chrono>
   | 
||
|   template<      class Clock,   | 
(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. 
Contents | 
[edit] 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
 | 
[edit] 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)  | |
|    [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)  | 
[edit] Non-member functions
|    specializes the std::common_type trait  (class template specialization)  | |
|    modifies the time point by the given duration  (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)  | |
[edit] Example
This example prints the current time minus 24 hours:
#include <iostream> #include <iomanip> #include <ctime> #include <chrono> using std::chrono::system_clock; int main() { system_clock::time_point now = system_clock::now(); std::time_t now_c = system_clock::to_time_t( now - std::chrono::hours(24)); std::cout << "One day ago, the time was " << std::put_time(std::localtime(&now_c), "%F %T") << '\n'; }
Possible output:
One day ago, the time was 2011-10-25 12:00:08
This example prints the time it takes to print "Hello World":
#include <iostream> #include <chrono> using std::chrono::duration_cast; using std::chrono::microseconds; using std::chrono::steady_clock; int main() { steady_clock::time_point start = steady_clock::now(); std::cout << "Hello World\n"; steady_clock::time_point end = steady_clock::now(); std::cout << "Printing took " // duration_cast is required to avoid accidentally losing precision. << duration_cast<microseconds>(end - start).count() << "us.\n"; }
Possible output:
Hello World Printing took 84us.
[edit] See also
|    (C++11)  | 
   a time interval   (class template)  |