clock_gettime,strftime,localtime

头文件<time.h>
且在编译链接时需加上 -lrt ;因为在librt中实现了clock_gettime函数。

函数原型 int clock_gettime(clockid_t clk_id, struct timespec *tp);

  • clk_id
    CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变
    CLOCK_MONOTONIC,从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
    CLOCK_PROCESS_CPUTIME_ID,本进程到当前代码系统CPU花费的时间
    CLOCK_THREAD_CPUTIME_ID,本线程到当前代码系统CPU花费的时间

  • tp

struct timespec {
time_t tv_sec; /* 秒*/
long tv_nsec; /* 纳秒*/
};

函数原型 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

  • str -- 这是指向目标数组的指针

  • maxsize -- 这是被复制到 str 的最大字符数

  • format -- 这是 C 字符串,包含了普通字符和特殊格式说明符的任何组合

  • timeptr -- 这是指向 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 到 11                */
   int tm_year;        /* 自 1900 起的年数                */
   int tm_wday;        /* 一周中的第几天,范围从 0 到 6                */
   int tm_yday;        /* 一年中的第几天,范围从 0 到 365                    */
   int tm_isdst;       /* 夏令时                        */    
};
说明符 介绍 示例
%a 缩写的星期几名称 Sun
%A 完整的星期几名称 Sunday
%b 缩写的月份名称 Mar
%B 完整的月份名称 March
%c 日期和时间表示法 Sun Aug 19 02:56:02 2012
%d 一月中的第几天(01-31) 19
%H 24 小时格式的小时(00-23) 14
%I 12 小时格式的小时(01-12) 05
%j 一年中的第几天(001-366) 231
%m 十进制数表示的月份(01-12) 08
%M 分(00-59) 55
%p AM 或 PM 名称 PM
%S 秒(00-61) 02
%U 一年中的第几周,以第一个星期日作为第一周的第一天(00-53) 33
%w 十进制数表示的星期几,星期日表示为 0(0-6) 4
%W 一年中的第几周,以第一个星期一作为第一周的第一天(00-53) 34
%x 日期表示法 08/19/12
%X 时间表示法 02:50:06
%y 年份,最后两个数字(00-99) 01
%Y 年份 2012
%Z 时区的名称或缩写 CDT
%% 一个 % 符号 %

localtime - 将时间数值变换成本地时间

函数原型 struct tm * localtime(const time_t *timer);

上一篇:时间函数 c/c++


下一篇:程序人生 | Linux Daemon 程序设计示例