时间格式是:20180702 00:15:45,这个时间是我所需要的格式。
time_t MriUIBI::convert_a_to_i(char * str_time)
{
struct tm tt;
memset(&tt,0,sizeof(tt));
tt.tm_sec=atoi(str_time+15);
tt.tm_min=atoi(str_time+12);
tt.tm_hour=atoi(str_time+9);
tt.tm_mday=atoi(str_time+6);
str_time[6]='\0';
tt.tm_mon=atoi(str_time+4)-1;
str_time[4]='\0';
tt.tm_year=atoi(str_time)-1900;
tt.tm_isdst = -1;
return mktime(&tt);
}
//1. atoi(), 遇上数字或正负符号才开始做转换,而在遇到非数字或字符串结束符('\0')才结束转换
//2.月份从0开始计算的,所以减1
//3.mktime(),算的是UTC,0时区时间,比北京时间晚8小时
//mktime() 将时间转换为自1970年1月1日以来逝去时间的秒数,发生错误时返回-1
1970-01-01 08:00:00 这个时间是正常格式
time_t convert_str_to_tm(char * str_time) //
{
struct tm tt;
memset(&tt,0,sizeof(tt));
tt.tm_year=atoi(str_time)-1900;
tt.tm_mon=atoi(str_time+5)-1;
tt.tm_mday=atoi(str_time+8);
tt.tm_hour=atoi(str_time+11);
tt.tm_min=atoi(str_time+14);
tt.tm_sec=atoi(str_time+17);
tt.tm_isdst = 0;
return mktime(&tt);
}