mktime 与 gmtime/localtime 功能相反,gmtime/localtime 将time_t转换为struct tm结构体数据,mktime将struct tm重新转换为time_t类型的UTC时间
使用例子:
| time_t t_time; struct tm *tm_ptr = NULL; time(&t_time); printf("time_t first time value = %d.n", t_time); tm_ptr = gmtime(&t_time); printf("time_t switch gmtime type, the time is: n yday = %d n wday = %d n year = %d n mon = %d n mday = %d n hour = %d n min = %d n sec = %d n isdst =%d.n", tm_ptr->tm_yday, tm_ptr->tm_wday, tm_ptr->tm_year, tm_ptr->tm_mon, tm_ptr->tm_mday, tm_ptr->tm_hour, tm_ptr->tm_min, tm_ptr->tm_sec, tm_ptr->tm_isdst ); t_time = mktime(tm_ptr); /*重新转换为time_t类型的UTC时间,这里有一个时区的转换, 时间为0区的时间, 所以一下使用的时间都为0区的时间*/ printf("gmtime type switch time_t second time = %d.n", t_time); |
打印:
| time_t first time value = 1513842674. time_t switch gmtime type, the time is: yday = 354 wday = 4 year = 117 mon = 11 mday = 21 hour = 7 min = 51 sec = 14 isdst =0. gmtime type switch time_t second time = 1513813874. |
8、gettimeofday
| int gettimeofday(struct timeval *tv, struct timezone *tz); |
返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用。
使用例子:
| struct timeval time_val; gettimeofday(&time_val, NULL); //gettimeofday(&start,&tz);结果一样 printf("时间秒.tv_sec: %d.n",time_val.tv_sec); printf("时间微秒.tv_usec: %d.n",time_val.tv_usec); |
打印:
| 时间秒.tv_sec:1513843633 时间微秒.tv_usec:689374 |
9、difftime
| double difftime(time_t time1, time_t time2); |
返回两个时间相差的秒数
使用例子:
| //获得时间差 time_t t_start; time_t t_end; time(&t_start); sleep(5); time(&t_end); printf("间隔时间= %f.n", difftime(t_end, t_start)); |
打印:
| 间隔时间= 5.000000. |
10、strftime
| size_t strftime( char *strDest, size_t maxsize, const char *format, const struct tm *timeptr); |
使用strftime()函数将时间格式化为我们想要的格式。








