时间库函数简要汇总

来源:互联网 发布:人工智能能代替老师吗 编辑:程序博客网 时间:2024/05/18 01:27

#include <sys/time.h>  
#include <time.h>    /*1秒 = 1000毫秒 = 1000000 微秒 = 1000000000 纳秒*/
struct timeval
{   
     long tv_sec;    // 秒   
     long tv_usec;  // 微妙    
};


用法: int gettimeofday(struct timeval *tv, struct timezone *tz); 
常用方式: gettimeofday(&tv, NULL);

 

 

struct timespec
{

       __time_t tv_sec;  /*seconds 秒*/
      long int tv_nsec; /*nanoseconds 纳秒*/
};

 

用法:int clock_gettime(clockid_t clk_id, struct timespect *tp);
CLOCK_REALTIME: Systemwide realtime clock. 系统范围内的实时时钟。
CLOCK_MONOTONIC:Represents monotonic time. Cannot be set. 表示单调时间,不能被设置的。CLOCK_MONOTONIC这种时钟更加稳定,不受系统时钟的影响。
常用方式:clock_gettime(CLOCK_MONOTONIC, &ts);

-----------------------------------------------------------------------------------------------------------------------------------------------------
#include <time.h>

time_t       /*其实就是long型*/

函数名:time
用法:time_t time(time_t * timer)   
功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,
其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。
然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。

struct tm
{   
     int tm_sec; /* 秒–取值区间为[0,59] */  
   int tm_min; /* 分 - 取值区间为[0,59] */   
     int tm_hour; /* 时 - 取值区间为[0,23] */  
   int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */   
     int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */   
     int tm_year; /* 年份,其值从1900开始 */   
     int tm_wday; /* 星期–取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */   
     int tm_yday; /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */   
     int tm_isdst;  /* 夏令时标识符*/   
     long int tm_gmtoff; /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/   
     const char *tm_zone; /*当前时区的名字(与环境变量TZ有关)*/   
};
-----------------------------------------------------------------------------------------------------------------------------------------------------
函数名: localtime
功 能: 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为日历时间 。  
说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。   
用 法: struct tm *localtime(const time_t *clock);   
返回值:返回指向tm 结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.

 

函数名:gmtime
功能:把日期和时间转换为格林威治(GMT)时间的函数。将参数timep 所指的time_t 结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果由结构tm返回。
用法: struct tm *gmtime(const time_t *clock);
  
localtime和gmtime的 区别是:localtime函数获得的tm结构体的时间,是已经进行过时区转化为本地时间,gmtime获取当前系统时间,只是获取的时间未经过时区转换。
-----------------------------------------------------------------------------------------------------------------------------------------------------
函数名: asctime   
功 能: 转换日期和时间为相应的ASCII码,返回字符串格式:星期,月,日,小时,分,秒,年
用 法: char *asctime(const struct tm *tblock);

 

函数名: ctime   
功 能: 把日期和时间转换为字符串   
用 法: char *ctime(const time_t *time);
-----------------------------------------------------------------------------------------------------------------------
函数使用步骤:
1. 调用【time(NULL)】获取time_t类型数值
2. 调用【localtime 或 gmtime】将time_t类型转换为struct tm类型。
3. 调用 【asctime 或 ctime】将struct tm类型转换成形如:星期,月,日,小时,分,秒,年

原创粉丝点击