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.
 (until C++23) 
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 
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) 
(C++11)  performs add and subtract operations involving a time point (function template) 
(C++11)(C++11)(removed in C++20)(C++11)(C++11)(C++11)(C++11)(C++20)  compares two time points (function template) 
(C++11)  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) 
(C++11)  specializes the std::common_type trait (class template specialization) 
#include <algorithm> #include <iostream> #include <iomanip> #include <ctime> #include <chrono> void slow_motion() { static int a[] {1,2,3,4,5,6,7,8,9,10,11,12}; while (std::ranges::next_permutation(a).found) { } // generates 12! permutations } int main() { using namespace std::literals; // enables the usage of 24h, 1ms, 1s instead of // e.g. std::chrono::hours(24), accordingly const std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); const std::time_t t_c = std::chrono::system_clock::to_time_t(now  24h); std::cout << "24 hours ago, the time was " << std::put_time(std::localtime(&t_c), "%F %T.\n") << std::flush; const std::chrono::time_point<std::chrono::steady_clock> start = std::chrono::steady_clock::now(); slow_motion(); const auto end = std::chrono::steady_clock::now(); std::cout << "Slow calculations took " << std::chrono::duration_cast<std::chrono::microseconds>(end  start).count() << "µs ≈ " << (end  start) / 1ms << "ms ≈ " // almost equivalent form of the above, but << (end  start) / 1s << "s.\n"; // using milliseconds and seconds accordingly }
Possible output:
24 hours ago, the time was 20210215 18:28:52. Slow calculations took 2090448µs ≈ 2090ms ≈ 2s.
(C++11)  a time interval (class template) 
© cppreference.com
Licensed under the Creative Commons AttributionShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/time_point