我是靠谱客的博主 花痴黑裤,最近开发中收集的这篇文章主要介绍c语言中的time ctime asctime gmtime localtime mktime,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

synopsis:  
 #inlcude<time.h>
 time_t time(time_t *time);
 char *ctime(const time_t *time);
 char *asctime(const struct tm *tm);
 struct tm *gmtime(const time_t *time);
 struct tm *localtime(const time_t *time);
 time_t mktime(struct tm *tm);


 description:
 time:
 time 返回的是 日历时间(calender time),即从1970/1/1 00:00:00 到当前的秒数。
 如果 参数time为NULL或者0,则结果保存在time的返回值中,否则,结果保存在time中
 
 ctime:
 ctime 参数是time返回的日历时间,返回字符串,比如:“Mon Jun 30 20:57:32 2014n”。(broken-down time)


 asctime:
 asctime 返回同ctime一样的字符窜,只是参数是结构体struct tm *tm 


 gmtime:
 gmtime参数是time返回的日历时间,返回结构体指针,此指针所指结构体表示的时间是 UTC时间,即协调世界时间,比GMT更精确
 返回的结构体定义为:
 struct tm {
      int     tm_sec;         /* seconds */  范围是:    0-59


      int     tm_min;         /* minutes */              0-59


      int     tm_hour;        /* hours */ 0-23


      int     tm_mday;        /* day of the month */     1-31


      int     tm_mon;         /* month */    特别注意:  0-11


      int     tm_year;        /* year */     从1900年开始到当前的年数


      int     tm_wday;        /* day of the week */      0-6 0表示星期天,以此到星期六


      int     tm_yday;        /* day in the year */      从1月1日开始  0-365


      int     tm_isdst;       /* daylight saving time */  夏令时制,即是“日光节约时制”一般在天亮早的夏季人为将时间提前一小时,
                                                          可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。
 其实从英文表达就可以看出它的意义。其值为0或正数,正数表示 该时制生效
 0表示不生效。
 };
 特别的:tm_year 为从1900年开始到当前所经过的 年数,如当前为2014年,则tm_year为2014-1900=114年
tm_mon 的范围为0-11
 想得到本地时间时,对于 重庆 来说,因为其处于东8区,所以比UTC提前8个小时,所以tm_hour+8才是重庆的正确小时数。


 localtime:
 localtime的参数是time返回的日历时间,返回结构体指针,此指针所指结构体表示的时间是 本地时间,与gmtime不同。
 这表示,tm_hour直接就表示本地小时数。
 其他与gmtime相同。


 mktime:  mktime的参数是结构体指针,返回的是日历时间。

代码运行环境:CentOS 6.4-x86      gcc version 4.4.7

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
int main()
{
time_t t;
time(&t);
printf("%dn",t);
printf("output of ctime : %s",ctime(&t));//ctime()
char buf[40];
ctime_r(&t,buf);
printf("output of ctime_r : %s",buf);//ctime_r()
struct tm *now;
now = gmtime(&t); //gmtime()
printf("output of gmtime : %d/%d/%d %d:%d:%dn",(1900+now->tm_year),
(1+now->tm_mon),now->tm_mday,(8+now->tm_hour),now->tm_min,now->tm_sec);
now = localtime(&t); //localtime()
printf("output of localtime: %d/%d/%d %d:%d:%dn",(1900+now->tm_year),
(1+now->tm_mon),now->tm_mday,now->tm_hour,now->tm_min,now->tm_sec);
struct tm *con_now;//asctime()
con_now = (struct tm *)malloc(sizeof(con_now));
con_now->tm_year = 114;
con_now->tm_mon = 5;
con_now->tm_mday = 30;
con_now->tm_wday = 1;
con_now->tm_hour = 16;
con_now->tm_min = 53;
con_now->tm_sec = 34;
printf("output of asctime: %s",asctime(con_now));
printf("output of asctime: %s",asctime(localtime(&t)));
printf("output of mktime: %dn",mktime(con_now));//mktime()
return 0;
}
第一次写技术博客,不对的地方请指正,多多交流。

最后

以上就是花痴黑裤为你收集整理的c语言中的time ctime asctime gmtime localtime mktime的全部内容,希望文章能够帮你解决c语言中的time ctime asctime gmtime localtime mktime所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部