我是c新手,嘗試使用strptime
函數,該函數將字符串時間轉換爲結構tm
。轉換後,我沒有得到正確的時間。一切都很好,但一年顯示錯誤(默認年份爲1900)。strptime不適用於時區格式說明符
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
int main()
{
struct tm tm;
char *pszTemp = "Mon Apr 25 09:53:00 IST 2016";
char szTempBuffer[256];
memset(&tm, 0, sizeof(struct tm));
memset(szTempBuffer, 0, sizeof(szTempBuffer));
strptime(pszTemp, "%a %b %d %H:%M:%S %Z %Y", &tm);
strftime(szTempBuffer, sizeof(szTempBuffer), "%Y-%m-%d %H:%M:%S", &tm);
printf("Last Boot Time after parsed = %s\n", szTempBuffer);
return 0;
}
輸出:1900年4月25日9時53分○○秒
你檢查了什麼['strptime'](http://man7.org/linux/man-pages/man3/strptime.3.html)返回?這樣它不會返回一個NULL指針? –
您是否嘗試使用'-Wall'選項進行編譯? – LPs
@LP:它沒有工作。 –