時間函數:time


time_t time(time_t * timer):獲取1970-1-1 00:00:00的秒數
struct tm localtime(time_t * _Time):將UTC的秒數轉化爲年(since1900)、月([0-11])、日、時、分、秒
time_t mktime(strcut tm * timeptr):將struct tm轉化爲time_t

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

void main(void)
{
     time_t tm;
     struct tm *local_tm;
     tm = time(NULL);
     printf("sec1 = %d\n", (long)tm);
 
     local_tm = localtime(&tm);
     printf("%4d-%02d-%02d    %02d:%02d:%02d\n", (local_tm->tm_year+1900), (local_tm->tm_mon+1),
          local_tm->tm_mday,local_tm->tm_hour, local_tm->tm_min, local_tm->tm_sec);

     tm = mktime(local_tm);
     printf("sec2 = %d\n", (long)tm);
}

編譯結果:
 sec1 = 1515406808
 2018-01-08    18:20:08
 sec2 = 1515406808
 請按任意鍵繼續. . .


vxworks、linux的函數:
int clock_gettime(clockid_t clk_id, struct timespec *tp);
其中,cld_id類型四種:  
a、CLOCK_REALTIME:系統實時時間,隨系統實時時間改變而改變
b、CLOCK_MONOTONIC,從系統啓動這一刻起開始計時,不受系統時間被用戶改變的影響
c、CLOCK_PROCESS_CPUTIME_ID,本進程到當前代碼系統CPU花費的時間
d、CLOCK_THREAD_CPUTIME_ID,本線程到當前代碼系統CPU花費的時間

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章