獲取當(dāng)前日期函數(shù)c語言 c語言獲取當(dāng)前時間

C語言有沒有輸出當(dāng)前時間的函數(shù)

#include "time.h"

為西鄉(xiāng)等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及西鄉(xiāng)網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、西鄉(xiāng)網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

time() 取得本地時間(日期時間函數(shù))

settimeofday() 設(shè)置當(dāng)前時間戳

mktime() 將時間結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成經(jīng)過的秒數(shù)

localtime() 獲取當(dāng)?shù)啬壳皶r間和日期

gmtime() 獲取當(dāng)前時間和日期

gettimeofday() 獲取當(dāng)前時間

ctime() 將時間和日期以字符串格式表示

asctime() 將時間日期以字符串格式表示

在c語言中如何使用系統(tǒng)函數(shù)得到當(dāng)前的日期?

獲得日期和時間

這里說的日期和時間就是我們平時所說的年、月、日、時、分、秒等信息。從第2節(jié)我們已經(jīng)知道這些信息都保存在一個名為tm的結(jié)構(gòu)體中,那么如何將一個日歷時間保存為一個tm結(jié)構(gòu)的對象呢?

其中可以使用的函數(shù)是gmtime()和localtime(),這兩個函數(shù)的原型為:

struct

tm

*

gmtime(const

time_t

*timer);

struct

tm

*

localtime(const

time_t

*

timer);

其中g(shù)mtime()函數(shù)是將日歷時間轉(zhuǎn)化為世界標(biāo)準(zhǔn)時間(即格林尼治時間),并返回一個tm結(jié)構(gòu)體來保存這個時間,而localtime()函數(shù)

是將日歷時間轉(zhuǎn)化為本地時間。比如現(xiàn)在用gmtime()函數(shù)獲得的世界標(biāo)準(zhǔn)時間是2005年7月30日7點18分20秒,那么我用

localtime()函數(shù)在中國地區(qū)獲得的本地時間會比世界標(biāo)準(zhǔn)時間晚8個小時,即2005年7月30日15點18分20秒。下面是個例子:

#include

"time.h"

#include

"stdio.h"

int

main(void)

{

struct

tm

*local;

time_t

t;

t=time(NUL);

local=localtime(t);

printf("Local

hour

is:

%d\n",local-tm_hour);

local=gmtime(t);

printf("UTC

hour

is:

%d\n",local-tm_hour);

return

0;

}

運行結(jié)果是:

Local

hour

is:

15

UTC

hour

is:

7

固定的時間格式

我們可以通過asctime()函數(shù)和ctime()函數(shù)將時間以固定的格式顯示出來,兩者的返回值都是char*型的字符串。返回的時間格式為:

星期幾

月份

日期

時:分:秒

年\n{post.content}

例如:Wed

Jan

02

02:03:55

1980\n{post.content}

其中\(zhòng)n是一個換行符,{post.content}是一個空字符,表示字符串結(jié)束。下面是兩個函數(shù)的原型:

Char

*

asctime(const

struct

tm

*

timeptr);

char

*

ctime(const

time_t

*timer);

其中asctime()函數(shù)是通過tm結(jié)構(gòu)來生成具有固定格式的保存時間信息的字符串,而ctime()是通過日歷時間來生成時間字符串。這樣的

話,asctime()函數(shù)只是把tm結(jié)構(gòu)對象中的各個域填到時間字符串的相應(yīng)位置就行了,而ctime()函數(shù)需要先參照本地的時間設(shè)置,把日歷時間轉(zhuǎn)

化為本地時間,然后再生成格式化后的字符串。在下面,如果t是一個非空的time_t變量的話,那么:

printf(ctime(t));

等價于:

struct

tm

*ptr;

ptr=localtime(t);

printf(asctime(ptr));

那么,下面這個程序的兩條printf語句輸出的結(jié)果就是不同的了(除非你將本地時區(qū)設(shè)為世界標(biāo)準(zhǔn)時間所在的時區(qū)):

#include

"time.h"

#include

"stdio.h"

int

main(void)

{

struct

tm

*ptr;

time_t

lt;

lt

=time(NUL);

ptr=gmtime();

printf(asctime(ptr));

printf(ctime());

return

0;

}

運行結(jié)果:

Sat

Jul

30

08:43:03

2005

Sat

Jul

30

16:43:03

2005

如何用C語言獲取當(dāng)前系統(tǒng)時間?

需要利用C語言的時間函數(shù)time和localtime,具體說明如下:

一、函數(shù)接口介紹:

1、time函數(shù)。

形式為time_t time (time_t *__timer);

其中time_t為time.h定義的結(jié)構(gòu)體,一般為長整型。

這個函數(shù)會獲取當(dāng)前時間,并返回。 如果參數(shù)__timer非空,會存儲相同值到__timer指向的內(nèi)存中。

time函數(shù)返回的為unix時間戳,即從1970年1月1日(UTC/GMT的午夜)開始所經(jīng)過的秒數(shù),不考慮閏秒。

由于是秒作為單位的,所以這并不是習(xí)慣上的時間,要轉(zhuǎn)為習(xí)慣上的年月日時間形式就需要另外一個函數(shù)了。

2、localtime函數(shù)。

形式為struct tm *localtime (const time_t *__timer);

其中tm為一個結(jié)構(gòu)體,包含了年月日時分秒等信息。

這種結(jié)構(gòu)是適合用來輸出的。

二、參考代碼:

#include?stdio.h

#include?time.h

int?main?()

{

time_t?t;

struct?tm?*?lt;

time?(t);//獲取Unix時間戳。

lt?=?localtime?(t);//轉(zhuǎn)為時間結(jié)構(gòu)。

printf?(?"%d/%d/%d?%d:%d:%d\n",lt-tm_year+1900,?lt-tm_mon,?lt-tm_mday,?lt-tm_hour,?lt-tm_min,?lt-tm_sec);//輸出結(jié)果

return?0;

}

注意事項:

struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt-tm_year+1900。

文章標(biāo)題:獲取當(dāng)前日期函數(shù)c語言 c語言獲取當(dāng)前時間
文章來源:http://bm7419.com/article30/dohpiso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google用戶體驗、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)