2010-04-27 70 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功能。