std::timespec_get
| Defined in header <ctime> | ||
|---|---|---|
| int timespec_get( std::timespec* ts, int base) | (since C++17) | |
| #define TIME_UTC /* implementation-defined */ | (since C++17) | 
1) Modifies the 
 std::timespec object pointed to by ts to hold the current calendar time in the time base base.
2) Expands to a value suitable for use as the 
 base argument of std::timespec_get
Other macro constants beginning with TIME_ may be provided by the implementation to indicate additional time bases.
If base is TIME_UTC, then.
-  ts->tv_secis set to the number of seconds since an implementation defined epoch, truncated to a whole value
-  ts->tv_nsecmember is set to the integral number of nanoseconds, rounded to the resolution of the system clock
Parameters
| ts | - | pointer to an object of type std::timespec | 
| base | - | TIME_UTCor another nonzero integer value indicating the time base | 
Return value
The value of base if successful, zero otherwise.
Notes
The POSIX function clock_gettime(CLOCK_REALTIME, ts) may also be used to populate a std::timespec with the time since the Epoch.
Example
#include <cstdio>
#include <ctime>
 
int main()
{
    std::timespec ts;
    std::timespec_get(&ts, TIME_UTC);
    char buf[100];
    std::strftime(buf, sizeof buf, "%D %T", std::gmtime(&ts.tv_sec));
    std::printf("Current time: %s.%09ld UTC\n", buf, ts.tv_nsec);
}Possible output:
Current time: 06/24/16 20:07:42.949494132 UTC
See also
| (since C++17) | time in seconds and nanoseconds (struct) | 
| returns the current time of the system as time since epoch (function) | 
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    http://en.cppreference.com/w/cpp/chrono/c/timespec_get