正文

linux系統(tǒng)時(shí)間同步命令 linux獲取當(dāng)前系統(tǒng)時(shí)間的函數(shù)

5424

Linux中存在三種形式的時(shí)間:

日歷時(shí)間:

指的是從1970年1月1日0時(shí)0分0秒開始到目前時(shí)間點(diǎn)所經(jīng)歷的秒數(shù)

本地時(shí)間:

當(dāng)?shù)貢r(shí)間,北京時(shí)間

格林威治時(shí)間:

世界標(biāo)準(zhǔn)時(shí)間

第一個(gè)函數(shù):獲取日歷時(shí)間,time();

函數(shù)頭文件:

#include?

函數(shù)格式:

time_t?time(time_t?c);

返回值:

time_t:以秒的格式返回當(dāng)前時(shí)間到1970年1月1日0時(shí)0分0秒中間過了多少秒;

參數(shù):一般填NULL,如果是一個(gè)指針,則表示返回值存儲(chǔ)在對(duì)應(yīng)的空間中;

第二個(gè)函數(shù):獲取指定的時(shí)間

1,struct?tm?*gmtime(const?time_t?*timep);  2,struct?tm?*localtime(const?time_t?*timep);

從名字可以看出來,一個(gè)是獲取格林尼治時(shí)間,一個(gè)是獲取本地時(shí)間;參數(shù)都是傳time_t類型的指針,所以第一個(gè)函數(shù)可以說是時(shí)間操作的基礎(chǔ)函數(shù)了;兩個(gè)函數(shù)的返回值是一個(gè)結(jié)構(gòu)體指針;該結(jié)構(gòu)體的內(nèi)容如下:

struct?tm?{  ???int?tm_sec;????/*?秒?(0-60)?*/  ???int?tm_min;????/*?分?(0-59)?*/  ???int?tm_hour;???/*?時(shí)?(0-23)?*/  ???int?tm_mday;???/*?每月幾號(hào)?(1-31)?*/  ???int?tm_mon;????/*?月份?(0-11)?*/  ???int?tm_year;???/*到1900年共有多少年?*/  ???int?tm_wday;???/*?周幾?(0-6,?Sunday?=?0)?*/  ???int?tm_yday;???/*?一年中的第幾天?(0-365,?1?Jan?=?0)?*/  ???int?tm_isdst;??/*?夏令時(shí)間?*/  };

第三個(gè)函數(shù):獲取字符串時(shí)間

char?*asctime(const?struct?tm?*tm);

該函數(shù)的作用是以字符串的形式返回時(shí)間,它的參數(shù)時(shí)第二個(gè)函數(shù)的返回值類型的指針;

第四個(gè)函數(shù):獲取指定格式時(shí)間

?size_t?strftime(char?*s,?size_t?max,?const?char?*format,?const?struct?tm?*tm);

函數(shù)的參數(shù):

char?*s,?size_t?max:前兩個(gè)參數(shù)定義一個(gè)保存獲取到時(shí)間的字符串?dāng)?shù)組,  					一個(gè)是該數(shù)組指針,一個(gè)是保存到數(shù)組的最大字節(jié)數(shù);  const?char?*format:時(shí)間保存的格式:  ??????????????%a	縮寫的星期幾名稱	Sun  ??????????????%A	完整的星期幾名稱	Sunday  ??????????????%b	縮寫的月份名稱	Mar  ??????????????%B	完整的月份名稱	March  ??????????????%c	日期和時(shí)間表示法	Sun?Aug?19?02:56:02?2012  ??????????????%d	一月中的第幾天(01-31)	19  ??????????????%H	24?小時(shí)格式的小時(shí)(00-23)	14  ??????????????%I	12?小時(shí)格式的小時(shí)(01-12)	05  ??????????????%j	一年中的第幾天(001-366)	231  ??????????????%m	十進(jìn)制數(shù)表示的月份(01-12)	08  ??????????????%M	分(00-59)	55  ??????????????%p	AM?或?PM?名稱	PM  ??????????????%S	秒(00-61)	02  ??????????????%U	一年中的第幾周,以第一個(gè)星期日作為第一周的第一天(00-53)	33  ??????????????%w	十進(jìn)制數(shù)表示的星期幾,星期日表示為?0(0-6)	4  ??????????????%W	一年中的第幾周,以第一個(gè)星期一作為第一周的第一天(00-53)	34  ??????????????%x	日期表示法	08/19/12  ??????????????%X	時(shí)間表示法	02:50:06  ??????????????%y	年份,最后兩個(gè)數(shù)字(00-99)	01  ??????????????%Y	年份	2012  ??????????????%Z	時(shí)區(qū)的名稱或縮寫	CDT  ??????????????%%	一個(gè)?%?符號(hào)	%  const?struct?tm?*tm:第二個(gè)參數(shù)的返回值結(jié)構(gòu)體指針