将结构中的信息转换为真实世界的时间,以字符串的形式显示。
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年至今的秒数。








