C – Convertir time_t a cadena con formato YYYY-MM-DD HH: MM: SS

¿Hay alguna forma de convertir un time_t en un std::string con el formato YYYY-MM-DD HH: MM: SS automáticamente mientras se mantiene el código portátil?

Use localtime para convertir time_t en una struct tm . Puede usar strftime para imprimir los datos deseados de eso.

 char buff[20]; time_t now = time(NULL); strftime(buff, 20, "%Y-%m-%d %H:%M:%S", localtime(&now)); 

Tu única opción real fuera de mi cabeza es escribir tu propia rutina o usar la función ctime () definida en POSIX.1 / C90. Sin duda vale la pena analizar ctime (), pero si tu fecha no está en la zona horaria correcta ya, tendrás problemas.

EDITAR: No pensé en usar la hora local como lo menciona Jerry a continuación. Convertirlo en una estructura no le ofrece más posibilidades, incluido lo que él menciona y strptime ().