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

首頁 > 系統(tǒng) > Linux > 正文

Linux下用C獲取當前時間

2024-08-28 00:01:44
字體:
供稿:網(wǎng)友

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

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

void getNowTime(){ timespec time; clock_gettime(CLOCK_REALTIME, &time); //獲取相對于1970到現(xiàn)在的秒數(shù) 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()

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

語法:

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

參數(shù):

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

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

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

localtime()

localtime是 把從1970-1-1零點零分到當前時間系統(tǒng)所偏移的秒數(shù)時間轉(zhuǎn)換為本地時間.

語法

說明:此函數(shù)獲得的tm結(jié)構體的時間是日歷時間。

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

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

例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;}

執(zhí)行結(jié)果:

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

例2:

上面的例子用了asctime函數(shù),下面這個例子不使用這個函數(shù)一樣能獲取系統(tǒng)當前時間。需要注意的是年份加上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()的區(qū)別

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;  //注意下面兩行的區(qū)別  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; }
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 新巴尔虎右旗| 西乌珠穆沁旗| 林州市| 临桂县| 东山县| 蒙自县| 龙南县| 绥阳县| 无极县| 建始县| 盐边县| 永平县| 巫山县| 瓦房店市| 颍上县| 巴林右旗| 阳城县| 安国市| 邛崃市| 集安市| 深圳市| 鄂托克前旗| 济源市| 宽城| 明光市| 疏勒县| 鄂托克旗| 土默特右旗| 清流县| 铜川市| 磴口县| 大石桥市| 惠州市| 鄱阳县| 华池县| 廉江市| 绥阳县| 绥阳县| 沅陵县| 阿合奇县| 巴彦淖尔市|