https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116755
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- 6s is currently required by the standard. std::println("{}", d2) formats the duration as if by writing to an ostream, so is equivalent to std::cout << d2 int8_t is signed char, and writing a signed char to an ostream casts to char. This is the subject of https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3154r1.html which has not been approved by the committee yet. The result from {fmt} is more useful, but is not what the standard requires.