Time

Mono Time

auto timestamp = a0::TimeMono::now();
auto str = timestamp.to_string();
timestamp == a0::TimeMono::parse(str);
timestamp += std::chrono::seconds(1);
Mono time is a number of nanoseconds from machine boottime.
This time cannot decrease and duration between ticks is constant.
This time is not related to wall clock time.
This time is most suitable for measuring durations.

As a string, it is represented as a 20 char number:
18446744072709551615

Note that this uses CLOCK_BOOTTIME under the hood, not CLOCK_MONOTONIC.

Wall Time

auto timestamp = a0::TimeWall::now();
auto str = timestamp.to_string();
timestamp == a0::TimeWall::parse(str);
Wall time is an time object representing human-readable wall clock time.
This time can decrease and duration between ticks is not constant.
This time is most related to wall clock time.
This time is not suitable for measuring durations.

As a string, it is represented as a 36 char RFC 3999 Nano / ISO 8601:
2006-01-02T15:04:05.999999999-07:00

References