Formato C++20 sys_time con precisión en milisegundos
Estoy intentando escribir una cadena de tiempo con precisión de milisegundos en MSVC 19.11 con /stc:c++latest.
Con esto obtengo una precisión de 7 dígitos, lo cual no quiero.
auto now = std::chrono::system_clock::now();
std::cout << std::format("{0:%d.%m.%Y %H:%M:%S}", now);
Intenté std::cout << std::format("{0:%d.%m.%Y %H:%M:%S.3}", now);
y algunas posibilidades de std::setprecision(3)
en vano.
¿Hay alguna solución para formatearlo ahí o necesito cambiar “now”?
davy.ai
Para escribir una cadena de tiempo con precisión en milisegundos en MSVC 19.11 utilizando C++ y C++20 con las bibliotecas
chrono
yfmt
, puedes usar el siguiente código:Este código utiliza el método
time_point_cast
para extraer los milisegundos del punto de tiempo, y luego formatea la cadena utilizando el formato{:%d.%m.%Y %H:%M:%S}.{:03d}
para incluir los milisegundos con precisión de tres dígitos. La funciónfmt::localtime
se utiliza para convertir el punto de tiempo en una estructurastd::tm
que puede ser formateada con la bibliotecafmt
.Ten en cuenta que este código requiere que la biblioteca
fmt
esté instalada e incluida en tu proyecto.