网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 前端脚本 » 正文

localtime,localtime函数

2020-3-2 14:29:7 | 作者:老铁SEO | 0个评论 | 人浏览

  1.time函数


  返回1970-1-1,00:00:00以来经过的秒数


  原型:time_ttime(time_t*calptr)


  结果可以通过返回值,也可以通过参数得到,见实例


  头文件


  返回值:


  成功:秒数,从1970-1-1,00:00:00可以当成整型输出或用于其它函数


  失败:-1


  例:


  time_tnow;


  time(&now);//等同于now=time(NULL)


  printf("nowtimeis%d\n",now);


  2.localtime函数


  将时间数值变换成本地时间,考虑到本地时区和夏令时标志;


  原型:structtm*localtime(consttime_t*calptr);


  头文件


  返回值:


  成功:structtm*结构体,原型如下:


  structtm{


  inttm_sec;/*秒–取值区间为[0,59]*/


  inttm_min;/*分-取值区间为[0,59]*/


  inttm_hour;/*时-取值区间为[0,23]*/


  inttm_mday;/*一个月中的日期-取值区间为[1,31]*/


  inttm_mon;/*月份(从一月开始,0代表一月)-取值区间为[0,11]*/


  inttm_year;/*年份,其值等于实际年份减去1900*/


  inttm_wday;/*星期–取值区间为[0,6],其中0代表星期天,1代表星期一*/


  inttm_yday;/*从每年1月1日开始的天数–取值区间[0,365],其中0代表1月1日*/


  inttm_isdst;/*夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0*/


  };


  此结构体空间由内核自动分配,而且不要去释放它.


  失败:NULL


  例:


  time_tnow;


  structtm*tm_now;


  time(&now);


  tm_now=localtime(&now);


  printf("nowdatetime:%d-%d-%d%d:%d:%d\n",tm_now->tm_year+1900,tm_now->tm_mon+1,tm_now->tm_mday,tm_now->tm_hour,tm_now->tm_min,tm_now->tm_sec);


  以上只在linux环境下通过,C/C++通用,WINDOWS不清楚是否不同。这两个是标准C的函数,应该不会相差太大。


  localtime函数


  1.time函数


  返回1970-1-1,00:00:00以来经过的秒数


  原型:time_ttime(time_t*calptr)


  结果可以通过返回值,也可以通过参数得到,见实例


  头文件


  返回值:


  成功:秒数,从1970-1-1,00:00:00可以当成整型输出或用于其它函数


  失败:-1


  例:


  time_tnow;


  time(&now);//等同于now=time(NULL)


  printf("nowtimeis%d\n",now);


  2.localtime函数


  将时间数值变换成本地时间,考虑到本地时区和夏令时标志;


  原型:structtm*localtime(consttime_t*calptr);


  头文件


  返回值:


  成功:structtm*结构体,原型如下:


  structtm{


  inttm_sec;/*秒–取值区间为[0,59]*/


  inttm_min;/*分-取值区间为[0,59]*/


  inttm_hour;/*时-取值区间为[0,23]*/


  inttm_mday;/*一个月中的日期-取值区间为[1,31]*/


  inttm_mon;/*月份(从一月开始,0代表一月)-取值区间为[0,11]*/


  inttm_year;/*年份,其值等于实际年份减去1900*/


  inttm_wday;/*星期–取值区间为[0,6],其中0代表星期天,1代表星期一*/


  inttm_yday;/*从每年1月1日开始的天数–取值区间[0,365],其中0代表1月1日*/


  inttm_isdst;/*夏令时标识符,夏令时tm_isdst为正;不实行夏令时tm_isdst为0*/


  };


  此结构体空间由内核自动分配,而且不要去释放它.


  失败:NULL


  例:


  time_tnow;


  structtm*tm_now;


  time(&now);


  tm_now=localtime(&now);


  printf("nowdatetime:%d-%d-%d%d:%d:%d\n",tm_now->tm_year+1900,tm_now->tm_mon+1,tm_now->tm_mday,tm_now->tm_hour,tm_now->tm_min,tm_now->tm_sec);


  以上只在linux环境下通过,C/C++通用,WINDOWS不清楚是否不同。这两个是标准C的函数,应该不会相差太大。


  localtime什么意思


  功能:把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为日历时间。


  说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。


  用法:structtm*localtime(consttime_t*clock);


  返回值:若时间在1970年1月1日之前,返回NULL,否则返回从1970-1-1零点零分到当前时间所经过的秒数。


  localtime_r


  #include


  #include


  #include


  /*************************************************************************


  *@brief:日期这字符串转为秒数


  *@inparam:


  |__pszDate2010/04/12/23/59/59、2010-04-1223:59:59类似字符串


  *@outparam:NA


  *@return:


  |__time_t


  *************************************************************************/


  time_tDateStr2Sec(char*pszDate)


  {


  structtmtmDate={0};


  tmDate.tm_year=atoi(pszDate)-1900;


  tmDate.tm_mon=atoi(pszDate+5)-1;//注意月份是从0开始的


  tmDate.tm_mday=atoi(pszDate+8);//月份日期是从1开始的


  tmDate.tm_hour=atoi(pszDate+11);


  tmDate.tm_min=atoi(pszDate+14);


  tmDate.tm_sec=atoi(pszDate+17);


  returnmktime(&tmDate);


  }


  /*************************************************************************


  *@brief:时间转换成字符串


  *@inparam:


  |__iTime时间戳


  *@outparam:pszTime


  *@return:NA


  *************************************************************************/


  voidTimeFormatInt2Str(intiTime,char*pszTime)


  {


  time_ttCurrent;


  structtmtmFmtDatetime;


  structtm*ptmFmtDatetime=NULL;


  if(iTime==0)


  {


  return;


  }


  tCurrent=iTime;


  ptmFmtDatetime=localtime_r(&tCurrent,&tmFmtDatetime);


  if(ptmFmtDatetime==NULL)


  {


  return;


  }


  sprintf(pszTime,"%04d-%02d-%02d%02d:%02d:%02d",


  ptmFmtDatetime->tm_year+1900,


  ptmFmtDatetime->tm_mon+1,


  ptmFmtDatetime->tm_mday,


  ptmFmtDatetime->tm_hour,


  ptmFmtDatetime->tm_min,


  ptmFmtDatetime->tm_sec


  );


  }<


  >


  


  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    相关推荐