嵌入式 Linux下时间处理问题

2019-07-12 18:05发布

   struct tm *tmnow;
    structtimeval tv;
   gettimeofday(&tv,NULL);//获得当前的秒数和微妙
    tmnow =localtime(&tv.tv_sec);//把当前的秒数转换成一种时间格式
   eric_print("build time:"__DATE__"  "__TIME__" ");


2013/09/22 15:09:09:965705 build time :Sep  52013  19:26:26
2013/09/22 15:09:09:965800 2013/09/22 15:09:09:965812 rjrm.c200 
2013/09/22 15:09:09:971377 bind port 8551
2013/09/22 15:09:09:971414 socket created
2013/09/22 15:09:09:971435 binded
2013/09/22 15:09:09:971453 begin listen port 8551

#define eric_print(...){print_current_time(); printf(__VA_ARGS__);}
inline void print_current_time(void)
{
    struct tm*tmnow;
    structtimeval tv;
   gettimeofday(&tv,NULL);
    tmnow =localtime(&tv.tv_sec);
  
   printf("d/d/d d:d:d:ld ",
      tmnow->tm_year+1900, tmnow->tm_mon+1,tmnow->tm_mday,tmnow->tm_hour,
      tmnow->tm_min, tmnow->tm_sec,tv.tv_usec);
   
}

一、 gmtime和localtime前后使用会有影响 #include
#include
int main(int argc, char **argv)
{
 time_t now;
 struct tm *tmutc, *tmlocal;
 
 time(&now);
 
 tmutc = gmtime(&now);
 tmlocal = localtime(&now);
 
 printf("%s标准时间为: %s",tmutc->tm_zone, asctime(tmutc));
 
 printf("%s时间为: %s",tmlocal->tm_zone, asctime(tmlocal));
 return 0;
}
******************************************* CST标准时间为: Tue Jan 31 09:23:17 2012
CST时间为:    Tue Jan 31 09:23:17 2012
****************************************** 二、 gmtime和localtime分开使用 #include
#include
int main(int argc, char **argv)
{
 time_t now;
 struct tm *tmutc, *tmlocal;
 
 time(&now);
 
 tmutc =gmtime(&now); 
 
 printf("%s标准时间为: %s",tmutc->tm_zone, asctime(tmutc));
 tmlocal =localtime(&now);
 
 printf("%s时间为: %s",tmlocal->tm_zone, asctime(tmlocal));
 return 0;
}
************************************************* GMT标准时间为: Tue Jan 31 01:24:40 2012
CST时间为:    Tue Jan 31 09:24:40 2012
************************************************