segundo obtener net minuto milisegundos larga horas hora formato formatear fecha c++ boost string-formatting boost-date-time

c++ - net - obtener fecha larga c#



Obtener la hora actual como una cadena YYYY-MM-DD-HH-MM-SS (2)

Estoy intentando obtener la hora actual como una cadena con formato "YYYY-MM-DD-HH-MM-SS" de una manera elegante. Puedo tomar la hora actual en formato ISO de la biblioteca "Fecha y hora" de Boost, pero tiene otras cadenas de delimitación que no funcionan para mí (lo uso en un nombre de archivo). Por supuesto, solo puedo reemplazar las cadenas delimitadoras, pero tengo la sensación de que hay una forma más agradable de hacerlo con las opciones de formato de fecha y hora. ¿Existe tal manera, y si es así, cómo puedo usarla?


La respuesta depende de lo que quieres decir con obtener y tomar. Si está intentando generar una cadena de tiempo formateada, use strftime (). Si está intentando analizar una cadena de texto en un formato binario, use strptime ().


Use std::strftime , es estándar C ++.

#include <cstdio> #include <ctime> int main () { std::time_t rawtime; std::tm* timeinfo; char buffer [80]; std::time(&rawtime); timeinfo = std::localtime(&rawtime); std::strftime(buffer,80,"%Y-%m-%d-%H-%M-%S",timeinfo); std::puts(buffer); return 0; }