clock_gettime()函数
//函数原型
#include <time.h>
int clock_gettime(clockid_t clk_id, struct timespec *tp);
参数:
clk_id:检索和设置clk_id指定的系统时钟。
CLOCK_REALTIME:系统时间,随系统时间改变而改变,寄从UTC1970-1-1 00:00:00开始计时。
CLOCK_MONOTONIC:从系统启动这一刻开始计时,不受系统时间呗用户改变的影响。
CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间。
CLOCK_THREAD_CPUTIME_ID:本线成到当前代码系统CPU花费时间。
struct timespec
{
time_t tv_sec; /* 秒*/
long tv_nsec; /* 纳秒*/
};
localtime()函数
#include <time.h> char *asctime(const struct tm *tm);
把从1970-1-1零时零分零秒到当前的系统时间系统偏移转换为本地时间。
列:
#include <stdio.h> #include <time.h> int main(int argc, char const *argv[]) { timespec timer_t; clock_gettime(CLOCK_REALTIME, &timer_t); //获取相对于1970到现在的秒数 printf("%d,%d\n",timer_t.tv_sec,timer_t.tv_nsec); struct tm nowTime; localtime_r(&timer_t.tv_sec, &nowTime); char current[1024]; sprintf(current, "%04d年 %02d月 %02d日 %02d:%02d:%02d", nowTime.tm_year + 1900, nowTime.tm_mon+1, nowTime.tm_mday, nowTime.tm_hour, nowTime.tm_min, nowTime.tm_sec); printf("%s\n",current); time_t timer; struct tm *tblock; timer = time(NULL); tblock = localtime(&timer); printf("Local time is: %s", asctime(tblock)); printf("%4d年%02d月%02d日 %02d:%02d:%02d\n", tblock->tm_year + 1900, tblock->tm_mon + 1, tblock->tm_mday, tblock->tm_hour, tblock->tm_min, tblock->tm_sec); char buff[128] = {0}; strftime(buff,sizeof(buff),"%Y年 %m月 %d日 %H:%M:%S",tblock); printf("%s\n",buff); return 0; }