繁体   English   中英

使用ctime转换UNIX时间戳

[英]Converting UNIX timestamp using ctime

我有一个Unix时间戳如下

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

如果检查在线Unix时间转换器中时间戳的值,则显示为1992年3月27日,但是如果检查程序的输出,则显示为1996年2月25日。 如何纠正呢?

您使用ctime的方式错误:它期望一个指向time_t的指针并返回一个字符串,而您正在传递一个字符串并期望其返回一个time_t 您的编译器不会警告您吗?

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

time_t timeval = 701729943;
printf("Time %s", ctime(&timeval));

如果仅将UNIX时间戳记作为字符串,请使用strtoulatoi从中创建一个time_t ,然后执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM