mktime函数,当tm结构体,当tm_hour为零的时候,会将时间转化到前一天,
tm_hour 不为零的时候,就没有问题。小菜一枚,help~没有币~~抱歉~
#include
#include
void printTime(struct tm * time){
printf("%d-%d-%d %d:%d:%d\n",time->tm_year+1900,time->tm_mon+1,time->tm_mday,time->tm_hour,time->tm_min,time->tm_sec);
}
struct tm str2time(char * str){
struct tm tmp_time = (struct tm *)malloc(sizeof(struct tm));
strptime(str,"%Y%m%d",tmp_time);
return *tmp_time;
}
int main(int argc, const char * argv[]) {
struct tm tmp_time =str2time("201509021");//将字符串转成时间
printTime(&tmp_time);
time_t t = mktime(&tmp_time);//该函数有问题。。。。。
tmp_time = *localtime(&t);//本地时间
printf("%s:\n","本地时间");
printTime(&tmp_time);
}
结果如下:
2015-9-21 0:0:0
本地时间:
2015-9-20 23:0:0