Linux下C語言時間函數總結


Linux C時間庫函數關聯關系圖如下:

C 庫函數 - time()

描述

  C 庫函數 time_t time(time_t *seconds) 返回自紀元 Epoch(1970-01-01 00:00:00 UTC)起經過的時間,以秒為單位。如果 seconds 不為空,則返回值也存儲在變量 seconds 中。

聲明

下面是 time() 函數的聲明。

time_t time(time_t *t)

參數

seconds -- 這是指向類型為 time_t 的對象的指針,用來存儲 seconds 的值。

返回值

以 time_t 對象返回當前日歷時間。

C 庫函數 - localtime()

描述

C 庫函數 struct tm *localtime(const time_t *timer) 使用 timer 的值來填充 tm 結構。timer 的值被分解為 tm 結構,並用本地時區表示。

聲明

下面是 localtime() 函數的聲明。

struct tm *localtime(const time_t *timer)

參數

timer -- 這是指向表示日歷時間的 time_t 值的指針。

返回值

該函數返回指向 tm 結構的指針,該結構帶有被填充的時間信息。

struct tm {
   int tm_sec;         /* 秒,范圍從 0 到 59 */
   int tm_min;         /* 分,范圍從 0 到 59 */
   int tm_hour;        /* 小時,范圍從 0 到 23 */
   int tm_mday;        /* 一月中的第幾天,范圍從 1 到 31 */
   int tm_mon;         /* 月份,范圍從 0 到 11 */
   int tm_year;        /* 自 1900 起的年數 */
   int tm_wday;        /* 一周中的第幾天,范圍從 0 到 6 */
   int tm_yday;        /* 一年中的第幾天,范圍從 0 到 365 */
   int tm_isdst;       /* 夏令時 */    
}

C 庫函數 - gmtime()

描述

C 庫函數 struct tm *gmtime(const time_t *timer) 使用 timer 的值來填充 tm 結構,並用協調世界時(UTC)也被稱為格林尼治標准時間(GMT)表示。

聲明

下面是 gmtime() 函數的聲明。

struct tm *gmtime(const time_t *timer)

參數

timeptr -- 這是指向表示日歷時間的 time_t 值的指針。

返回值

該函數返回指向 tm 結構的指針,該結構帶有被填充的時間信息。

C 庫函數 - mktime()

  描述

C 庫函數 time_t mktime(struct tm *timeptr) 把 timeptr 所指向的結構轉換為一個依據本地時區的 time_t 值。

聲明

下面是 mktime() 函數的聲明。

time_t mktime(struct tm *timeptr)

參數

timeptr -- 這是指向表示日歷時間的 time_t 值的指針,該日歷時間被分解為以下各部分。

返回值

該函數返回一個 time_t 值,該值對應於以參數傳遞的日歷時間。如果發生錯誤,則返回 -1 值。

 

C 庫函數 - ctime()

描述

C 庫函數 char *ctime(const time_t *timer) 返回一個表示當地時間的字符串,當地時間是基於參數 timer。

返回的字符串格式如下: Www Mmm dd hh:mm:ss yyyy 其中,Www 表示星期幾,Mmm 是以字母表示的月份,dd 表示一月中的第幾天,hh:mm:ss 表示時間,yyyy 表示年份。

聲明

下面是 ctime() 函數的聲明。

char *ctime(const time_t *timer)

參數

timer -- 這是指向 time_t 對象的指針,該對象包含了一個日歷時間。

返回值

該函數返回一個 C 字符串,該字符串包含了可讀格式的日期和時間信息 

C 庫函數 - asctime()

描述

C 庫函數 char *asctime(const struct tm *timeptr) 返回一個指向字符串的指針,它代表了結構 struct timeptr 的日期和時間。

聲明

下面是 asctime() 函數的聲明。

char *asctime(const struct tm *timeptr)

參數

timeptr 是指向 tm 結構的指針。

返回值

該函數返回一個 C 字符串,包含了可讀格式的日期和時間信息 Www Mmm dd hh:mm:ss yyyy,其中,Www 表示星期幾,Mmm 是以字母表示的月份,dd 表示一月中的第幾天,hh:mm:ss 表示時間,yyyy 表示年份。

C 庫函數 - strftime()

描述

C 庫函數 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 根據 format 中定義的格式化規則,格式化結構 timeptr 表示的時間,並把它存儲在 str 中。

聲明

下面是 strftime() 函數的聲明。

size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr)

參數

str -- 這是指向目標數組的指針,用來復制產生的 C 字符串。
maxsize -- 這是被復制到 str 的最大字符數。
format -- 這是 C 字符串,包含了普通字符和特殊格式說明符的任何組合。這些格式說明符由函數替換為表示 tm 中所指定時間的相對應值。
timeptr -- 這是指向 tm 結構的指針。

返回值

如果產生的 C 字符串小於 size 個字符(包括空結束字符),則會返回復制到 str 中的字符總數(不包括空結束字符),否則返回零。

具體實例如下:

#include <stdio.h>
#include <time.h>
 
int main()
{
	time_t t_time;
	struct tm *tm_time;
	char *c_time;
	char timestr[512] = {0};
	
	t_time = time(NULL);
	
	tm_time = gmtime(&t_time);
	
	//轉換成國際標准時間
	printf("gmtime		: %d:%d:%d  %d:%d:%d\n", 1900+tm_time->tm_year, tm_time->tm_mon, tm_time->tm_mday, tm_time->tm_hour, tm_time->tm_min, tm_time->tm_sec);
	
	//轉換成本地時間
	tm_time = localtime(&t_time);
	printf("localtime	: %d:%d:%d  %d:%d:%d\n", 1900+tm_time->tm_year, tm_time->tm_mon, tm_time->tm_mday, tm_time->tm_hour, tm_time->tm_min, tm_time->tm_sec);
	
	//轉換成字符串
	c_time = ctime(&t_time);
	printf("ctime		: %s\n", c_time);
	
	//轉換成字符串
	c_time = asctime(tm_time);
	printf("asctime		: %s\n", c_time);
	
	//格式化輸出
	strftime(timestr, sizeof(timestr), "%F %T", tm_time);
	printf("strftime	: %s\n", timestr);
	
	return 0;
}

  

運行結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM