online minutes long conversion actual c linux unix time epoch

minutes - unix time actual



Convertir cadena de tiempo de epoxi a tiempo (2)

He estado buscando una forma de convertir una cadena (en tiempo de Época) en una fecha.

Básicamente, necesito tomar esto: 1360440555 (en forma de cadena) y hacerlo en esto: Feb 9 12:09 2013 .

He estado mirando strptime y strftime, pero ninguno parece estar funcionando para mí. ¿Alguna sugerencia?

Editar: Gracias, chicos. Lo convertí en un int con atoi() , lo atoi() como time_t y luego ejecuté ctime() en él. Funcionó a la perfección!


Puede usar %s (extensión GNU) para convertir la marca de tiempo POSIX dada como una cadena al tiempo desglosado tm :

#define _XOPEN_SOURCE #include <stdio.h> #include <string.h> #include <time.h> int main() { struct tm tm; char buf[255]; memset(&tm, 0, sizeof(struct tm)); strptime("1360440555", "%s", &tm); strftime(buf, sizeof(buf), "%b %d %H:%M %Y", &tm); puts(buf); /* -> Feb 09 20:09 2013 */ return 0; }

Nota: la zona horaria local es UTC (con otra zona horaria el resultado es diferente).


Si solo tuvieras ese valor en un entero en vez de una cadena, podrías simplemente llamar a ctime . Si hubiera alguna forma de convertir una cadena en un entero ...

time_t c; c = strtoul( "1360440555", NULL, 0 ); ctime( &c );