C++中string 和time_t之间的转换

在编程中经常会用到字符串和时间的转换,特此写了个通用的函数,保存之。。。。。。

time_t convert_string_to_time_t(const std::string & time_string) { struct tm tm1; time_t time1; int i = sscanf(time_string.c_str(), "%d/%d/%d %d:%d:%d" , &(tm1.tm_year), &(tm1.tm_mon), &(tm1.tm_mday), &(tm1.tm_hour), &(tm1.tm_min), &(tm1.tm_sec), &(tm1.tm_wday), &(tm1.tm_yday)); tm1.tm_year -= 1900; tm1.tm_mon --; tm1.tm_isdst=-1; time1 = mktime(&tm1); return time1; }  

 

测试例子:

int main(int argc, char *argv[]) { std::string date_string("2010/11/20 18:08:01"); time_t tmp_time; tmp_time = convert_string_to_time_t(date_string); struct tm *p; p = localtime(&tmp_time); p->tm_year = p->tm_year + 1900; p->tm_mon = p->tm_mon + 1; printf("date is %04d-%02d-%02d %02d:%02d:%02d/n", p->tm_year, p->tm_mon, p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec); }

 

什么? 程序编译有错误?拜托,加上头文件等等。。。。。。。 哈!

 

你可能感兴趣的:(C++)