Base module

time

Classes and functions for handling time.

time

Classes and functions for handling time.

Functions

ReturnNameDescription
std::time_tnowReturns the current wall-clock time as a UTC time_t (seconds since epoch).
doubleclockSecsReturns the elapsed process time in decimal seconds using a monotonic clock.
std::stringprintFormats a broken-down time value using the given strftime format string.
std::stringprintLocalFormats the current local time using the given strftime format string.
std::stringprintUTCFormats the current UTC time using the given strftime format string.
std::tmtoLocalConverts a time_t value to a broken-down local time structure. Uses thread-safe native functions (localtime_r / localtime_s).
std::tmtoUTCConverts a time_t value to a broken-down UTC time structure. Uses thread-safe native functions (gmtime_r / gmtime_s).
std::stringgetLocalReturns the current local time as an ISO8601 formatted string.
std::stringgetUTCReturns the current UTC time as an ISO8601 formatted string.
uint64_thrtimeReturns the current high-resolution monotonic time in nanoseconds.

now

std::time_t now()

Returns the current wall-clock time as a UTC time_t (seconds since epoch).

Returns

Current UTC time in seconds since the Unix epoch.


clockSecs

double clockSecs()

Returns the elapsed process time in decimal seconds using a monotonic clock.

Returns

Process time in seconds.


print

std::string print(const std::tm & dt, const char * fmt)

Formats a broken-down time value using the given strftime format string.

Parameters

  • dt Broken-down time to format.

  • fmt strftime format string (default: ISO8601Format).

Returns

Formatted time string.


printLocal

std::string printLocal(const char * fmt)

Formats the current local time using the given strftime format string.

Parameters

  • fmt strftime format string (default: ISO8601Format).

Returns

Formatted local time string.


printUTC

std::string printUTC(const char * fmt)

Formats the current UTC time using the given strftime format string.

Parameters

  • fmt strftime format string (default: ISO8601Format).

Returns

Formatted UTC time string.


toLocal

std::tm toLocal(const std::time_t & time)

Converts a time_t value to a broken-down local time structure. Uses thread-safe native functions (localtime_r / localtime_s).

Parameters

  • time UTC time value to convert.

Returns

Broken-down local time.


toUTC

std::tm toUTC(const std::time_t & time)

Converts a time_t value to a broken-down UTC time structure. Uses thread-safe native functions (gmtime_r / gmtime_s).

Parameters

  • time UTC time value to convert.

Returns

Broken-down UTC time.


getLocal

std::string getLocal()

Returns the current local time as an ISO8601 formatted string.

Returns

ISO8601 local time string.


getUTC

std::string getUTC()

Returns the current UTC time as an ISO8601 formatted string.

Returns

ISO8601 UTC time string.


hrtime

uint64_t hrtime()

Returns the current high-resolution monotonic time in nanoseconds.

Returns

Current time in nanoseconds (suitable for measuring intervals).

Variables

ReturnNameDescription
const int64_tkNumMillisecsPerSec staticConstants for calculating time.
const int64_tkNumMicrosecsPerSec static
const int64_tkNumNanosecsPerSec static
const int64_tkNumMicrosecsPerMillisec static
const int64_tkNumNanosecsPerMillisec static
const int64_tkNumNanosecsPerMicrosec static
const char *ISO8601Format staticThe date/time format defined in the ISO 8601 standard. This is the default format used throughout the library for consistency.

kNumMillisecsPerSec

static

const int64_t kNumMillisecsPerSec = (1000)

Constants for calculating time.


kNumMicrosecsPerSec

static

const int64_t kNumMicrosecsPerSec = (1000000)

kNumNanosecsPerSec

static

const int64_t kNumNanosecsPerSec = (1000000000)

kNumMicrosecsPerMillisec

static

const int64_t kNumMicrosecsPerMillisec = kNumMicrosecsPerSec / kNumMillisecsPerSec

kNumNanosecsPerMillisec

static

const int64_t kNumNanosecsPerMillisec = kNumNanosecsPerSec / kNumMillisecsPerSec

kNumNanosecsPerMicrosec

static

const int64_t kNumNanosecsPerMicrosec = kNumNanosecsPerSec / kNumMicrosecsPerSec

ISO8601Format

static

const char * ISO8601Format = "%Y-%m-%dT%H:%M:%SZ"

The date/time format defined in the ISO 8601 standard. This is the default format used throughout the library for consistency.

Examples: 2005-01-01T12:00:00+01:00 2005-01-01T11:00:00Z