溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C語言的strftime()怎么用

發(fā)布時(shí)間:2022-02-19 09:05:14 來源:億速云 閱讀:182 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了C語言的strftime()怎么用的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇C語言的strftime()怎么用文章都會(huì)有所收獲,下面我們一起來看看吧。

strftime函數(shù)主要用于時(shí)間格式化,它的函數(shù)原型如下:

size_t __cdecl strftime(char * __restrict__ _Buf,size_t _SizeInBytes,const char * __restrict__ _Format,const struct tm * __restrict__ _Tm);

它有4個(gè)參數(shù):

  • _Buf, 表示返回的時(shí)間字符串

  • _SizeInBytes, 要寫入的字節(jié)的最大數(shù)量

  • _Format, 這是 C 字符串,包含了普通字符和特殊格式說明符的任何組合。

  • _Tm, 輸入時(shí)間結(jié)構(gòu)體

其中C字符串格式符說明如下:

說明符替換為示例
%a縮寫的星期幾名稱Sun
%A完整的星期幾名稱Sunday
%b縮寫的月份名稱Mar
%B完整的月份名稱March
%c日期和時(shí)間表示法Sun Jan 23 02:56:02 2022
%d一月中的第幾天(01-31)19
%H24 小時(shí)格式的小時(shí)(00-23)14
%I12 小時(shí)格式的小時(shí)(01-12)05
%j一年中的第幾天(001-366)231
%m十進(jìn)制數(shù)表示的月份(01-12)08
%M分(00-59)55
%pAM 或 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)%

時(shí)間結(jié)構(gòu)體格式如下:

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

也就是說strftime函數(shù)的功能就是將時(shí)間結(jié)構(gòu)體轉(zhuǎn)換為指定的字符串格式。下面通過一個(gè)簡單例子來演示strftime函數(shù)的用法。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char** argv)
{
	time_t now_time;
	struct tm *info;
	char buffer[80];
	time( &now_time );
	info = localtime( &now_time );
	strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", info);
	printf("格式化的日期和時(shí)間 : %s \n", buffer );
	return 0;
}

首先使用time函數(shù)獲取當(dāng)前時(shí)間,然后在使用strftime函數(shù)將時(shí)間通過指定的字符串格式打印出來,打印結(jié)果如下:

C語言的strftime()怎么用

通過打印的結(jié)果可以看出,打印字符串的格式和函數(shù)中指定的字符串格式是一樣的,這樣通過對(duì)字符串格式的設(shè)置,就可按照自己的要求打印出時(shí)間和日期的字符串,使用起來更加靈活和方便。

關(guān)于“C語言的strftime()怎么用”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“C語言的strftime()怎么用”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI