您的位置:首页 > 运维架构 > Linux

嵌入式 Linux下时间处理问题

2013-12-02 14:51 686 查看
   struct tm *tmnow;

    structtimeval tv;

   gettimeofday(&tv,NULL);//获得当前的秒数和微妙

    tmnow =localtime(&tv.tv_sec);//把当前的秒数转换成一种时间格式

   eric_print("build time:"__DATE__"  "__TIME__"\n");


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 <stdio.h>

#include <time.h>

int main(int argc, char **argv)

{

 time_t now;

 struct tm *tmutc, *tmlocal;

 

 time(&now);

 

 tmutc = gmtime(&now);

 tmlocal = localtime(&now);

 

 printf("%s标准时间为:\t%s",tmutc->tm_zone, asctime(tmutc));

 

 printf("%s时间为:\t%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 <stdio.h>

#include <time.h>

int main(int argc, char **argv)

{

 time_t now;

 struct tm *tmutc, *tmlocal;

 

 time(&now);

 

 tmutc =gmtime(&now); 

 

 printf("%s标准时间为:\t%s",tmutc->tm_zone, asctime(tmutc));

 tmlocal =localtime(&now);

 

 printf("%s时间为:\t%s",tmlocal->tm_zone, asctime(tmlocal));

 return 0;

}

*************************************************

GMT标准时间为: Tue Jan 31 01:24:40 2012

CST时间为:    Tue Jan 31 09:24:40 2012

************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: