Convert Epoch Time string to Time
20,848
Solution 1
If only you had that value in an integer instead of a string, you could just call ctime
. If only there were some way to convert a string to an integer....
time_t c;
c = strtoul( "1360440555", NULL, 0 );
ctime( &c );
Solution 2
You could use %s
(GNU extension), to convert POSIX timestamp given as a string to the broken-down time 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;
}
Note: the local timezone is UTC (with other timezone the result is different).
Author by
idigyourpast
Updated on November 17, 2020Comments
-
idigyourpast over 3 years
I've been looking for a way to convert a string (in Epoch time) into a date.
Basically, I need to take this:
1360440555
(in string form) and make it into this:Feb 9 12:09 2013
.I've been looking at strptime and strftime, but neither seems to be working for me. Any suggestions?
Edit: Thanks, guys. I converted it to an int with
atoi()
, cast it astime_t
, then ranctime()
on it. Worked perfectly!