在C語言中,我們可以用gettimeofday()函數來取得系統時間。精確度至微秒。

使用gettimeofday()函數要include以下兩個標頭檔

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

回傳兩個結構timeval(目前時間)與timezone,相關訊息如下:


int gettimeofday (struct timeval * tv, struct timezone * tz);
//成功return 1,失敗return 0
struct timeval{
    long tv_sec;  //秒
    long tv_usec;  //微秒
};

struct timezone
{
    int tz_minuteswest;  //和格林威治時間差了幾分鐘
    int tz_dsttime;  //日光節約時間狀態
};

範例碼

#include <sys/time.h>
#include <unistd.h>
main(){
    struct timeval tv;
    struct timezone tz;
    gettimeofday (&tv, &tz);
    printf("tv_sec; %d\n", tv.tv_sec);
    printf("tv_usec; %d\n", tv.tv_usec);
    printf("tz_minuteswest; %d\n", tz.tz_minuteswest);
    printf("tz_dsttime, %d\n", tz.tz_dsttime);
}

參考資料

C语言gettimeofday()函数:获取当前时间