我有一个unix时间戳如下
char timestamp[100];
strcpy(timestamp,"701729943");
time_t timeval=ctime(timestamp);
printf("Time %s",timeval);
如果检查在线unix时间转换器中的时间戳值,它显示1992年3月27日,但如果检查程序的输出则显示feb 25,1996。如何纠正这个?
答案 0 :(得分:3)
你正在使用ctime
错误的方法:它需要一个指向time_t
的指针并返回一个字符串,而你传递一个字符串并期望它返回一个{{1 }}。你的编译器没有警告你吗?
无论如何,它应该以这种方式使用:
time_t
如果您只将UNIX时间戳作为字符串,请使用time_t timeval = 701729943;
printf("Time %s", ctime(&timeval));
或strtoul
以便从中创建atoi
,然后执行此操作。