c語言中的時間戳和時間格式

0、讀取系統(tǒng)毫秒級時間

long getCurrentTime()

{

struct timeval tv;

gettimeofday(&tv,NULL);

return tv.tv_sec * 1000 + tv.tv_usec / 1000;

}

1、時間戳(秒級)

? ? ?在Linux系統(tǒng)中撕阎,時間戳是一個絕對值,表示距離時間(1970-1-1, 00:00:00)的秒數(shù)。在C\C++ 語言中,用數(shù)據(jù)類型time_t 表示時間戳愿险,time_t 本質上是一個long int笛丙。獲取當前時間的時間戳代碼如下所示:

#include

#include

int main(int argc, const char * argv[])

{

time_t now;

time(&now);

printf("now:%ld",now);

}

上面程序打印出的數(shù)據(jù)為“now:1470918308” 漾脂;1470918308表示當前時間距離格林威治時間的秒數(shù);在shell終端下命令 "date -d @1470918308 " 打印出這個時間戳的日期格式為Thu Aug 11 20:22:47 CST 2016胚鸯。

2骨稿、如何將時間戳轉換成特定的時間格式

? ? ? 經常碰到的一個問題是將一個時間戳顯示成指定的顯示格式,比如講上面的時間顯示為2016-8-11姜钳。C/C++ 語言中坦冠,和時間操作相關的關鍵數(shù)據(jù)結構是struc tm,其定義如下:

struct tm {

int tm_sec;? ? ? ? /* seconds ?0-59*/

int tm_min;? ? ? ? /* minutes 0-59*/

int tm_hour;? ? ? ? /* hours 0-23*/

int tm_mday;? ? ? ? /* day of the month 1-31*/

int tm_mon;? ? ? ? /* month 0-11*/

int tm_year;? ? ? ? /* year *距離1990的年數(shù)/

int tm_wday;? ? ? ? /* day of the week 0-6*/

int tm_yday;? ? ? ? /* day in the year 0-365*/

int tm_isdst;? ? ? /* daylight saving time */

};

? ? ? 在將時間戳表示成指定格式前哥桥,我們需要將時間戳轉換成tm數(shù)據(jù)結構辙浑。C/C++提供了倆個函數(shù)struct tm *gmtime(const time_t *timep) 和struct tm *localtime(const time_t *timep); 其中gtime轉換后的tm是基于時區(qū)0的,而localtime轉換后的是基于當?shù)貢r區(qū)【中國為時區(qū)8】拟糕;因為同一時間戳在不同地區(qū)的表示時間是不一樣的【因為時區(qū)不一樣】判呕。我們便可利用經過localtime轉換后的tm展示當前時間了,tim_mo+1送滞、tm_year+1990后才是我們想要看到的時間侠草。我們也可以利用接口 size_t strftime(char *s, size_t max, const char *format,const struct tm *tm) 來定制我們的時間格式。

#include<stdio.h>

#include<time.h>

int main(int argc, const char * argv[])

{

time_t t;

time(&t);

struct tm *tmp_time = localtime(&t);

char s[100];

strftime(s, sizeof(s), "%04Y%02m%02d %H:%M:%S", tmp_time);

printf("%d: %s\n", (int)t, s);

return 0;

}

上面程序輸出的數(shù)據(jù)為:1470919776: 20160811 20:49:36累澡。因此利用strftime我們可以隨意定制化顯示時間梦抢。

3、如何將時間格式轉換時間戳

? ? ? 有時候我們并不是想得到當前時間戳(time(&t)),而是希望將特定時間格式轉換成時間戳愧哟,比如計算2016/8/13的時間戳是多少奥吩。C/C++提供char *strptime(const char *s, const char *format, struct tm *tm);將時間格式字符串S按指定格式foramt解析成tm; 再用time_t mktime(struct tm *tm)函數(shù)將tm生成時間戳蕊梧。例如程序打印2016/08/13的時間戳霞赫。

#include

#include

int main(int argc, const char * argv[])

{

struct tm* tmp_time = (struct tm*)malloc(sizeof(struct tm));

strptime("2016/08/13/06/12","%Y/%m/%d/%H/%M",tmp_time); //按當?shù)貢r區(qū)將2016/08/13/06/12解析成tmp_time

time_t t = mktime(tmp_time);//按當?shù)貢r區(qū)解析tmp_time

printf("%ld\n",t);

free(tmp_time);

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肥矢,隨后出現(xiàn)的幾起案子端衰,更是在濱河造成了極大的恐慌,老刑警劉巖甘改,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旅东,死亡現(xiàn)場離奇詭異,居然都是意外死亡十艾,警方通過查閱死者的電腦和手機抵代,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忘嫉,“玉大人荤牍,你說我怎么就攤上這事案腺。” “怎么了康吵?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵劈榨,是天一觀的道長。 經常有香客問我晦嵌,道長同辣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任耍铜,我火速辦了婚禮邑闺,結果婚禮上跌前,老公的妹妹穿的比我還像新娘棕兼。我一直安慰自己,他們只是感情好抵乓,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布伴挚。 她就那樣靜靜地躺著,像睡著了一般灾炭。 火紅的嫁衣襯著肌膚如雪茎芋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天蜈出,我揣著相機與錄音田弥,去河邊找鬼。 笑死铡原,一個胖子當著我的面吹牛偷厦,可吹牛的內容都是我干的。 我是一名探鬼主播燕刻,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼只泼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卵洗?” 一聲冷哼從身側響起请唱,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎过蹂,沒想到半個月后十绑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡酷勺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年本橙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸥印。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡勋功,死狀恐怖坦报,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情狂鞋,我是刑警寧澤片择,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站骚揍,受9級特大地震影響字管,放射性物質發(fā)生泄漏。R本人自食惡果不足惜信不,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一嘲叔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧抽活,春花似錦硫戈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梭姓,卻和暖如春霜幼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背誉尖。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工罪既, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铡恕。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓琢感,卻偏偏與公主長得像,于是被迫代替她去往敵國和親没咙。 傳聞我的和親對象是個殘疾皇子猩谊,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內容