2010-04-27 69 views

回答

6

雖然POSIX有strptime(),我不認爲有一種方法可以在標準C中做到這一點。

6

在UNIX衍生系統中,有一個函數叫做strptime(),它在time.h中有效。它的使用類似於scanf()

你可以只使用一個scanf()電話,如果你知道什麼格式的日期將是英寸

I.E.

char *dateString = "2008-12-10"; 
struct tm * parsedTime; 
int year, month, day; 
// ex: 2009-10-29 
if(sscanf(dateString, "%d-%d-%d", &year, &month, &day) != EOF){ 
    time_t rawTime; 
    time(&rawTime); 
    parsedTime = localtime(&rawTime); 

    // tm_year is years since 1900 
    parsedTime->tm_year = year - 1900; 
    // tm_months is months since january 
    parsedTime->tm_mon = month - 1; 
    parsedTime->tm_mday = day; 
} 

除此之外,我不知道有任何C99 char *struct tm功能。