char *ctime(const time_t *timer) 返回一个表示当地时间的字符串,当地时间是基于参数 timer。
返回的字符串格式:Thu Dec 21 13:59:57 2017
使用:
time_t curtime;
struct tm *tm_ptr = NULL;
time(&curtime);
tm_ptr = localtime(&curtime);
printf("ctime转换的当前时间 = %s", ctime(&curtime));
printf("asctime转换的当前时间 = %s", asctime(tm_ptr));
打印:
ctime转换的当前时间 = Thu Dec 21 13:59:57 2017
asctime转换的当前时间 = Thu Dec 21 13:59:57 2017
6、gmtime/localtime
struct tm* gmtime(const time_t *timep);
将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针。
stuct tm* localtime(const time_t *timep);
和gmtime类似,但是它是经过时区转换的时间。
time_t curtime;
gmtime 函数将 curtime 转换为struct tm结构的格林威治时间,基本的意思是,gmtime转出来的是0时区的标准时间
localtime 函数将 curtime 转换为struct tm结构的本地时间,localtime是将时区考虑在内了,转出的当前时区的时间。
举个例子:
time_t t_time;
struct tm *tmp_ptr = NULL;
time(&t_time);
printf("t_time = %d.n", t_time);
tmp_ptr = gmtime(&t_time);
printf("after gmtime, 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",
tmp_ptr->tm_yday,
tmp_ptr->tm_wday,
tmp_ptr->tm_year,
tmp_ptr->tm_mon,
tmp_ptr->tm_mday,
tmp_ptr->tm_hour,
tmp_ptr->tm_min,
tmp_ptr->tm_sec,
tmp_ptr->tm_isdst
);
tmp_ptr = localtime(&t_time);
printf("after localtime, 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",
tmp_ptr->tm_yday,
tmp_ptr->tm_wday,
tmp_ptr->tm_year,
tmp_ptr->tm_mon,
tmp_ptr->tm_mday,
tmp_ptr->tm_hour,
tmp_ptr->tm_min,
tmp_ptr->tm_sec,
tmp_ptr->tm_isdst
);
return 0;
打印:
t_time = 1513841065. after gmtime, the time is: yday = 354 wday = 4 year = 117 mon = 11 mday = 21 hour = 7 min = 24 sec = 25 isdst =0. after localtime, the time is: yday = 354 wday = 4 year = 117 mon = 11 mday = 21 hour = 15 min = 24 sec = 25 isdst =0.
7、mktime
time_t mktime(struct tm* timeptr);
将struct tm 结构的时间转换为从1970年至今的秒数。
mktime 与 gmtime/localtime 功能相反,gmtime/localtime 将time_t转换为struct tm结构体数据,mktime将struct tm重新转换为time_t类型的UTC时间








