国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux下用C獲取當前時間

2019-11-02 16:59:16
字體:
來源:轉載
供稿:網友

Linux下用C獲取當前時間,具體如下:

代碼(可以把clock_gettime換成time(NULL))

void getNowTime(){ timespec time; clock_gettime(CLOCK_REALTIME, &time); //獲取相對于1970到現在的秒數 tm nowTime; localtime_r(&time.tv_sec, &nowtime); char current[1024]; sprintf(current, "%04d%02d%02d%02d:%02d:%02d", nowTime.tm_year + 1900, nowTime.tm_mon, nowTime.tm_mday,   nowTime.tm_hour, nowTime.tm_min, nowTime.tm_sec);}

分析:

clock_gettime()

 函數"clock_gettime"是基于Linux C語言的時間函數,他可以用于計算精度和納秒。

語法:

#include<time.h>int clock_gettime(clockid_t clk_id,struct timespec *tp);

參數:

clk_id : 檢索和設置的clk_id指定的時鐘時間。

CLOCK_REALTIME:系統實時時間,隨系統實時時間改變而改變,即從UTC1970-1-1 0:0:0開始計時,中間時刻如果系統時間被用戶改成其他,則對應的時間相應改變

  CLOCK_MONOTONIC:從系統啟動這一刻起開始計時,不受系統時間被用戶改變的影響   CLOCK_PROCESS_CPUTIME_ID:本進程到當前代碼系統CPU花費的時間   CLOCK_THREAD_CPUTIME_ID:本線程到當前代碼系統CPU花費的時間
struct timespec{time_t tv_sec; /* 秒*/long tv_nsec; /* 納秒*/};

localtime()

localtime是 把從1970-1-1零點零分到當前時間系統所偏移的秒數時間轉換為本地時間.

語法

說明:此函數獲得的tm結構體的時間是日歷時間。

用 法: struct tm *localtime(const time_t *clock);

返回值:返回指向tm 結構體的指針.tm結構體是time.h中定義的用于分別存儲時間的各個量(年月日等)的結構體.

例1:

#include <stdio.h>#include <stddef.h>#include <time.h>int main(void){ time_t timer;//time_t就是long int 類型 struct tm *tblock; timer = time(NULL); tblock = localtime(&timer); printf("Local time is: %s/n", asctime(tblock)); return 0;}

執行結果:

Local time is: Mon Feb 16 11:29:26 2009

例2:

上面的例子用了asctime函數,下面這個例子不使用這個函數一樣能獲取系統當前時間。需要注意的是年份加上1900,月份加上1。

#include<time.h>#include<stdio.h>int main(){ struct tm *t; time_t tt; time(&tt); t = localtime(&tt); printf("%4d年%02d月%02d日 %02d:%02d:%02d/n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec); return 0;}

localtime()與localtime_r()的區別

localtime():

#include <cstdlib> #include <iostream> #include <time.h> #include <stdio.h>  using namespace std;  int main(int argc, char *argv[]) {  time_t tNow =time(NULL);  time_t tEnd = tNow + 1800;  //注意下面兩行的區別  struct tm* ptm = localtime(&tNow);  struct tm* ptmEnd = localtime(&tEnd);   char szTmp[50] = {0};  strftime(szTmp,50,"%H:%M:%S",ptm);  char szEnd[50] = {0};  strftime(szEnd,50,"%H:%M:%S",ptmEnd);     printf("%s /n",szTmp);  printf("%s /n",szEnd);     system("PAUSE");  return EXIT_SUCCESS; }

最后出來的結果是:

21:18:39

21:18:39

和最初想法不一致。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麦盖提县| 凉城县| 孝感市| 南阳市| 望都县| 霍邱县| 黄平县| 高碑店市| 广德县| 汽车| 犍为县| 南开区| 奈曼旗| 新余市| 屏山县| 黔西| 延寿县| 麻江县| 大邑县| 陆川县| 嘉黎县| 金塔县| 石棉县| 汤阴县| 佳木斯市| 深泽县| 亳州市| 红河县| 阿拉尔市| 那坡县| 绥芬河市| 鲁山县| 文登市| 古浪县| 龙游县| 龙口市| 翁牛特旗| 江孜县| 长乐市| 囊谦县| 东安县|