c庫函式之時間和日期處理

2021-06-18 16:54:42 字數 1854 閱讀 5511

1. strptime

函式原型:char *strptime(const char *

buf,const char *

format

, struct tm *

tm);

功能:按照特定時間格式將字串轉換為時間型別。

引數:buf  時間字串指標;format  格式字串指標;tm  儲存轉換後結果的時間結構體指標;

返回值:呼叫成功返回 *buf最後位置,失敗返回空指標。

例子:

char fmt = "%y-%m-%d-%h:%m:%s";

char buf = "2000-01-01-00:00:00";

struct tm tb;

if (strptime(buf, fmt, &tb) != null)

2. 

localtime

函式原型:struct tm *localtime(const time_t *clock);

功 能: 把從1970-1-1零點零分到當前時間系統所偏移的秒數時間轉換為本地時間,而gmtime函式轉換後的時間沒有經過時區變換,是utc時間 。

返回值:返回指向tm 

結構體的

指標.tm

結構體的時間是日曆時間,tm結構體是time.h中定義的用於分別儲存時間的各個量(年月日等)的結構體.

例子1:

#include #include #include int main(void)

程式例2:
上面的例子用了

asctime

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

#include#includeint main()

3.gmtime

原型:struct tm *gmtime(long *clock);

功能:把日期和時間轉換為格林威治(gmt)時間的函式。將引數timep 所指的time_t 結構中的資訊轉換成真實世界所使用的時間日期表示方法,然後將結果由結構tm返回。

返回值: 返回結構tm代表目前utc 時間

struct tm

;

int tm_sec 代表目前秒數,正常範圍為0-59,但允許至61秒

int tm_min 代表目前分數,範圍0-59

int tm_hour 從午夜算起的時數,範圍為0-23

int tm_mday 目前月份的日數,範圍01-31

int tm_mon 代表目前月份,從一月算起,範圍從0-11

int tm_year 從1900 年算起至今的年數

int tm_wday 一星期的日數,從星期一算起,範圍為0-6

int tm_yday 從今年1月1日算起至今的天數,範圍為0-365

int tm_isdst 日光節約時間的旗標

此函式返回的時間日期未經時區轉換,而是utc時間。

例子:

#include "stdio.h"

#include "time.h"

#include "stdlib.h"

int main(void)

與localtime比較的不同點:

localtime函式獲得的tm

結構體的時間,是已經進行過時區轉化為本地時間。

而此函式功能類似獲取當前系統時間,只是獲取的時間未經過時區轉換。

PHP之時間和日期函式

時間日期函式 date default timezone set utc 獲取當前時間的時間戳 time0 mktime time1 time time2 date u 輸出時間 echo time0.time1.time2.time3 mktime 12,0,0 當前中午的時間戳 echo tim...

SQL學習之時間日期函式

菜鳥教程 函式描述now 返回當前的日期和時間 curdate 返回當前的日期 curtime 返回當前的時間 date 提取日期或日期 時間表示式的日期部分 extract 返回日期 時間的單獨部分 date add 向日期新增指定的時間間隔 date sub 從日期減去指定的時間間隔 dated...

selenium之 時間日期控制項的處理

很多人問時間日期的空間怎麼處理,但是時間日期控制項各種各樣,你可能遇到正常點的像這樣 當然也可能遇到難點的,像這樣 當然,也不排除會遇到 的,像這樣 呵呵,真要乙個個想著怎麼去選擇,簡直是非人類幹的事!那麼該怎麼辦?其實很簡單,我們不去搞時間日期空間,我們把它當成乙個普通的input框處理就好了!但...