(1) 时间格式间的转换函数主要是 time_t、struct tm、时间的字符串格式之间的转换。看下面的函数参数类型以及返回值类型:
char *asctime(const struct tm *tm);char *ctime(const time_t *timep);struct tm *gmtime(const time_t *timep);struct tm *localtime(const time_t *timep);time_t mktime(struct tm *tm);
gmtime和localtime的参数以及返回值类型相同,区别是前者返回的格林威治标准时间,后者是当地时间。
例子如下:
#include <stdio.h>#include <time.h>int main(int argc, char *argv[]){ time_t t = time(NULL); struct tm *gmt, *area; tzset(); area = localtime(&t); printf ("Local time: %s", asctime(area)); gmt = gmtime(&t); printf("GMT time: %s", asctime(gmt)); return 0;}
(2) 获取时间函数两个函数,获取的时间类型看原型就知道了:
time_t time(time_t *t);int gettimeofday(struct timeval *tv, struct timezone *tz);
前者获取time_t类型,后者获取struct timeval类型,因为类型的缘故,前者只能精确到秒,后者可以精确到微秒。
只有经历过地狱般的折磨,才有征服天堂的力量。