簡體   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