码迷,mamicode.com
首页 > 系统相关 > 详细

linux时间

时间:2019-04-30 09:23:02      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:mtime   time()   long   img   图片   gettime   fda   字符串   linux   

 

1.linux中获取时间戳的方式:

#include<sys/time.h>
#include<time.h>
#include<stdio.h>

//include<sys/time.h>
//int gettimeofday(struct timeval *tv,struct timezone*tz);
//第二个参数已经废弃,传入NULL
//struct timeval{
//time_t tv_sec; //时间戳
//suseconds_t tv_usec;};// long int 额外微妙级,百万分之一
//
//#include<time>
//time_t time(time_t*a);
//返回的结果与*a一样,因此可以time_t t=time(NULL) 调用
//


int main()
{
    
    struct timeval ts1;
    int err=gettimeofday(&ts1,NULL);
    if(err!=0)
    printf("gettimeof day failed\n");
    printf("%ld,%ld\n",ts1.tv_sec,ts1.tv_usec);
    
    time_t time1;
    time_t time2=time(&time1);
    printf("%ld,%ld\n",time1,time2);
    return 0;
}

运行结果:

技术图片

可以看到,三种获取时间戳的方式都相同,可以使用time_t t=time();快速获取时间。

time_t的类型为long,使用32位的int只能表示到2038年。


 2.把time_t转换为可打印的格式

#include<time.h>                                                                                                                           
#include<stdio.h>                                                                                                                          
#include<string.h>                                                                                                                         
//#include<time.h>                                                                                                                         
//char*ctime(const time_t*timep);                                                                                                          
                                                                                                                                           
int main()                                                                                                                                 
{                                                                                                                                          
    time_t t1=time(NULL);                                                                                                                  
    char*s1=ctime(&t1);                                                                                                                    
    printf("%s\n",s1);                                                                                                                     
    printf("%d\n",strlen(s1));                                                                                                             
    return 0;                                                                                                                              
} 

运行结果:

技术图片

注意:返回的字符串由静态分配,下次对ctime()调用会将其覆盖掉。gmtime(),localtime(),asctime()都有可能覆盖由其他函数返回,

所以在调用这些函数的时候,最好保存一份副本。

 ctime_r()是cimte()的可重入版本。

 

linux时间

标签:mtime   time()   long   img   图片   gettime   fda   字符串   linux   

原文地址:https://www.cnblogs.com/sunmeng1994/p/10793787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!