Time in C++: Inter-Clock Conversions, Epochs, and Durations
4 months ago
- #time-handling
- #C++
- #chrono
- Different clocks in C++ have different epochs and purposes, making direct comparisons and conversions between them tricky.
- C++20 introduced `clock_cast` and `clock_time_conversion` for well-defined conversions between clocks with known relationships.
- Manual correlation is needed for clocks like `system_clock` and `steady_clock`, but it's error-prone due to potential clock jumps.
- Duration conversions can lead to precision loss or overflow, so use `floor`, `ceil`, or `round` to make intent clear.
- Best practices include using `steady_clock` for intervals, converting to human-readable formats at boundaries, and avoiding assumptions about clock relationships.