使用ctime转换UNIX时间戳

时间:2015-01-27 21:00:29

标签: c++ c linux unix

我有一个unix时间戳如下

  char timestamp[100];
  strcpy(timestamp,"701729943");
  time_t timeval=ctime(timestamp);
  printf("Time %s",timeval);

如果检查在线unix时间转换器中的时间戳值,它显示1992年3月27日,但如果检查程序的输出则显示feb 25,1996。如何纠正这个?

1 个答案:

答案 0 :(得分:3)

你正在使用ctime错误的方法:它需要一个指向time_t的指针并返回一个字符串,而你传递一个字符串并期望它返回一个{{1 }}。你的编译器没有警告你吗?

无论如何,它应该以这种方式使用:

time_t

如果您只将UNIX时间戳作为字符串,请使用time_t timeval = 701729943; printf("Time %s", ctime(&timeval)); strtoul以便从中创建atoi,然后执行此操作。