我一直在寻找一种将字符串(以纪元时间)转换为日期的方法。
基本上,我需要把这个:(1360440555
以字符串形式)做成这个:Feb 9 12:09 2013
。
我一直在研究 strptime 和 strftime,但似乎都不适合我。有什么建议么?
编辑:谢谢,伙计们。我将它转换为 int atoi()
,将其转换为time_t
,然后运行ctime()
它。工作完美!
如果你的值是整数而不是字符串,你可以调用ctime
. 如果只有某种方法可以将字符串转换为整数....
time_t c;
c = strtoul( "1360440555", NULL, 0 );
ctime( &c );
您可以使用%s
(GNU extension)将作为字符串给出的 POSIX 时间戳转换为分解时间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;
}
注意:本地时区为 UTC(与其他时区结果不同)。