##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### 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.

### [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

(constructor) | constructs a new time point (public member function) [edit]
time_since_epoch | returns the time point as duration since the start of its clock (public member function) [edit]
operator+=operator-= | modifies the time point by the given duration (public member function) [edit]
min [static] | returns the time point corresponding to the smallest duration (public static member function) [edit]
max [static] | returns the time point corresponding to the largest duration (public static member function) [edit]

### [edit] Non-member functions

std::common_type<std::chrono::time_point> | specializes the std::common_type trait (class template specialization) [edit]
operator+operator- | modifies the time point by the given duration (function template) [edit]
operator==operator!=operator<operator<=operator>operator>= | compares two time points (function template) [edit]
time_point_cast | converts a time point to another time point on the same clock, with a different duration (function template) [edit]

### [edit] Example

This example prints the current time minus 24 hours:

Run this code

    #include <iostream>
    #include <iomanip>
    #include <ctime>
    #include <chrono>

    int main()
    {

        using namespace std::chrono;

        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":

Run this code

    #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

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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/chrono/time_point&oldid=63986"