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)體指針