87 inline std::string
IsoTime(
const double time_since_epoch,
const uint8_t precision) {
89 std::time_t whole_seconds =
static_cast<std::time_t
>(time_since_epoch);
90 double fractional_seconds = time_since_epoch - whole_seconds;
93 std::tm* gmt_time = std::gmtime(&whole_seconds);
94 std::ostringstream oss;
97 oss << std::put_time(gmt_time,
"%Y-%m-%dT%H:%M:");
100 oss << std::setw(2) << std::setfill(
'0') << gmt_time->tm_sec;
103 if (precision == 0) {
108 std::string fractional_str = fmt::format(
"{:.{}}", fractional_seconds, precision);
111 oss << fractional_str.substr(1);