C++ ctime strftime() 函式
示例
以不同方式表示當前日期
time_t timestamp;
char output[50];
struct tm * datetime;
time(×tamp);
datetime = localtime(×tamp);
strftime(output, 50, "%B %e, %Y", datetime);
cout << output << "\n";
strftime(output, 50, "%I:%M:%S %p", datetime);
cout << output << "\n";
strftime(output, 50, "%D", datetime);
cout << output << "\n";
strftime(output, 50, "%c", datetime);
cout << output << "\n";
自己動手試一試 »
定義和用法
strftime()
函式將日期和時間(由 tm
結構提供)的 C 風格字串表示形式寫入 char
陣列。一個 format 引數指定日期和時間如何表示。
注意: 使用 gmtime()
或 localtime()
函式從時間戳獲取 tm
結構。
格式字串
格式字串被複制到陣列中,其每個 格式說明符 都被生成的值替換。下表列出了所有格式說明符
格式說明符 | 描述 | 示例 |
---|---|---|
%a |
星期的簡短表示 | 星期五 |
%A |
星期的完整表示 | 星期五 |
%b |
月份名稱的簡短表示 | Dec |
%B |
月份名稱的完整表示 | 十二月 |
%c |
完整的日期和時間表示 | Fri Dec 17 14:30:01 2023 |
%C |
世紀(等同於取 4 位年份的前兩位數字) | 20 |
%d |
帶前導零的月份中的日期 | 09 |
%D |
日期表示,等同於 %m/%d/%y |
12/17/23 |
%e |
帶前導空格的月份中的日期 | 9 |
%F |
日期表示,等同於 %Y-%m-%d |
2023-12-17 |
%g |
兩位數基於周的年份(基於周的年份從一週的開始算起) | 23 |
%G |
四位數基於周的年份(基於周的年份從一週的開始算起) | 2023 |
%h |
月份名稱的簡短表示(等同於 %b ) |
Dec |
%H |
24 小時制的小時 | 14 |
%I |
12 小時制的小時 | 02 |
%j |
年份中的日期(從 0 到 365) | 351 |
%m |
月份的數字表示 | 351 |
%M |
小時內的分鐘 | 30 |
%n |
一個 \n 換行符 |
|
%p |
AM 或 PM | PM |
%r |
完整的 12 小時制時間格式 | 02:30:01 PM |
%R |
24 小時制時間格式,等同於 %H:%M |
14:30 |
%S |
分鐘內的秒數 | 01 |
%t |
一個 \t 製表符 |
|
%T |
完整的 24 小時制時間格式,等同於 %H:%M:%S |
14:30:01 |
%u |
星期幾的數字表示(從 1 到 7,星期一為 1) | 7 |
%U |
年份中的週數(從 0 開始,第 1 周從該年的第一個星期日開始) | 51 |
%V |
年份中的週數(從 1 開始,第 1 周從該年的第一個星期一開始,一月在第一個星期一之前的任何一天都屬於前一年) | 50 |
%w |
星期幾的數字表示(從 0 到 6,星期日為 0) | 0 |
%W |
年份中的週數(從 0 開始,第 1 周從該年的第一個星期一開始) | 50 |
%x |
基於區域設定的日期表示 | 12/17/23 |
%X |
基於區域設定的時間表示 | 14:30:01 |
%y |
兩位數的年份表示 | 23 |
%Y |
四位數的年份表示 | 2023 |
%z |
數字時區偏移量 | +0000 |
%Z |
時區名稱 | 格林尼治標準時間 |
%% |
一個 % 字元 |
% |
語法
strftime(char * destination, size_t size, const char * format, const struct tm * datetime);
size_t
資料型別表示一個非負整數。
引數值
引數 | 描述 |
---|---|
destination | 必需。一個 char 陣列,用於寫入格式化的日期。 |
大小 | 必需。指定 char 陣列中可用於寫入的空間量,以字元為單位。 |
format | 必需。指定日期應如何格式化。 |
datetime | 必需。一個 tm 結構,包含要表示的日期和時間資訊。 |
技術詳情
返回 | 一個數字,表示寫入陣列的字元數。返回值為 0 表示沒有足夠的可用空間可寫入。 |
---|