Namespaces
Variants
Views
Actions

std::chrono::time_point

From cppreference.com
< cpp‎ | chrono
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.

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) [edit]
returns the time point as duration since the start of its clock
(public member function) [edit]
modifies the time point by the given duration
(public member function) [edit]
[static]
returns the time point corresponding to the smallest duration
(public static member function) [edit]
[static]
returns the time point corresponding to the largest duration
(public static member function) [edit]

[edit] Non-member functions

specializes the std::common_type trait
(class template specialization) [edit]
modifies the time point by the given duration
(function template) [edit]
compares two time points
(function template) [edit]
converts a time point to another time point on the same clock, with a different duration
(function template) [edit]
converts a time_point to another, rounding down
(function template) [edit]
converts a time_point to another, rounding up
(function template) [edit]
converts a time_point to another, rounding to nearest, ties to even
(function template) [edit]

[edit] 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.

[edit] See also

(C++11)
a time interval
(class template)