C语言时间函数解析

来源:互联网 发布:linux 启动oracle服务 编辑:程序博客网 时间:2024/05/17 09:36

对于c的时间函数,又能知道多少呢?


ftime()         获取当前时间,并将其保存在结构体timeb中
localtime()     将time_t转换成结构体tm


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

int main()
{
    struct timeb tp;
    struct tm    *tm;

    ftime(&tp);
    tm = localtime(&( tp.time ));

    printf("%02d:%02d:%02d:%03d/n",
            (tm->tm_hour),
            (tm->tm_min),
            (tm->tm_sec),
            (tp.millitm ));

timeb
--------------------------------------------
struct timeb{
    time_t           time;
    unsigned short millitm;
    short            timezonel;
    short            dstflag;
};

timeb.time    
    为1970-01-01至今的秒数
timeb.millitm
    微秒
timeb.timezonel
    为目前时区和Greenwich相差的时间,单位为分钟
timeb.dstflag
    为日光节约时间的修正状态,如果为非0代表启用日光节约时间修正

ftime()
--------------------------------------------
int ftime(struct timeb *tp);
    Return current date and time in tp
    返回值 :无论成功或失败都返回0

tm
--------------------------------------------
Broken-down time is stored in the structure tm which is defined in <time.h> as follows:
struct tm {
     int tm_sec;    
     int tm_min;    
     int tm_hour;    
     int tm_mday;
     int tm_mon;
     int tm_year;    
     int tm_wday;    
     int tm_yday;    
     int tm_isdst;    
};
tm_sec
    秒 –- 取值区间为[0,59]
tm_min
    分 -- 取值区间为[0,59]
tm_hour
    时 -- 取值区间为[0,23]
tm_mday
    日 -- 取值区间为[1,31]
tm_mon
    月 -- 取值区间为[0,11] (0代表一月)
tm_year
    年 -- 其值为实际年份减去1900
tm_wday
    星期 –- 取值区间为[0,6] (其中0代表星期天; 1代表星期一)
tm_yday
    从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日
tm_isdst
    夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。


localtime()
--------------------------------------------
    asctime, ctime, gmtime, localtime, mktime, asctime_r, ctime_r, gmtime_r, localtime_r ---- transform date and time to broken-down time or ASCII

struct tm *localtime(const time_t *timep);
原创粉丝点击