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

linux time

2016-07-26 10:59 453 查看
#include <stdio.h>
#include <stddef.h>
#include <time.h>
#include <sys/time.h>

/*
1.字符串
#include <stdio.h>
#include <stddef.h>
#include <time.h>
*/
void Test_Asctime(void)
{
time_t timer;//time_t就是long int 类型
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
printf("Test_Asctime: %s\n",asctime(tblock));
}

/*
2.结构变量
#include<time.h>
#include<stdio.h>
*/
void Test_Localtime()
{
struct tm *t;
time_t tt;
time(&tt);
t=localtime(&tt);
printf("time_t tt:%ld\n",tt);
printf("Test_Localtime:%4d年%02d月%02d日 %02d:%02d:%02d\n\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
}

/*
3.精确到微秒/毫秒
[无法用一个函数得到,除非自己实现]
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
*/

void Test_UsecTime()
{
struct timeval    tv;
struct timezone tz;

struct tm         *p;

gettimeofday(&tv, &tz);//gettimeofday(&tv, NULL);
printf("tv_sec:%ld\n",tv.tv_sec);
printf("tv_usec:%ld\n",tv.tv_usec);
//    printf("tz_minuteswest:%d\n",tz.tz_minuteswest);
//    printf("tz_dsttime:%d\n",tz.tz_dsttime);

p = localtime(&tv.tv_sec);
printf("Test_UsecTime:%d:%d:%d %d:%d:%d %ld:%ld\n", 1900+p->tm_year, 1+p->tm_mon, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec, tv.tv_usec/1000,tv.tv_usec%1000);
}

int main(void)
{
Test_Asctime();
Test_Localtime();
Test_UsecTime();

return 0;
}

/**
执行结果:
Test_Asctime: Tue Jul 26 12:54:19 2016

time_t tt:1469508859
Test_Localtime:2016年07月26日 12:54:19

tv_sec:1469508859
tv_usec:543745
Test_UsecTime:2016:7:26 12:54:19 543:745
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: