C 速查手冊
11.5.8 strftime()
time.h 的函數 (function) strftime() 將結構 (structure) tm 中的時間格式轉換成指定格式的字串 (string) ,有如下的可指定的轉換格式
%a | 星期幾的縮寫,如 | Wed |
%A | 星期幾的完整名稱,如 | Wednesday |
%b | 月份的縮寫,如 | Jul |
%B | 月份的完整名稱,如 | July |
%c | 同 asctime() 的結果,如 | Wed Jul 7 15:37:53 2010 |
%d | 這個月的第幾日,從 01 到 31 ,如 | 07 |
%H | 24 小時制的當天時刻,如 | 15 |
%I | 12 小時制的當天時刻,如 | 3 |
%j | 今年的第幾天,從 001 到 366 ,如 | 188 |
%m | 月份,從 01 到 12 ,如 | 07 |
%M | 現在幾分,從 00 到 59 ,如 | 37 |
%P | PM 或 AM ,如 | P |
%S | 現在幾秒,從 00 到 59 ,如 | 53 |
%U | 以星期天為第一天的週數,從 00 到 53 ,如 | 27 |
%w | 星期幾,從 0 到 6 ,如 | 3 |
%W | 以星期一為第一天的週數,從 00 到 53 ,如 | 27 |
%x | 現在的年月日,如 | 07/07/10 |
%X | 現在時間,如 | 15:37:53 |
%y | 不含世紀的年表示法,如 | 10 |
%Y | 含世紀的年表示法,如 | 2010 |
%Z | 時區名稱,如 | CST |
strftime() 共需四個參數 (parameter) ,第一個為輸出字串,第二個為輸出字串的大小,第三個為含有轉換格式的指定字串,第四個為指向結構 tm 的指標 (pointer) 。
以下程式示範使用 strftime() 的結果
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t t1 = time(NULL);
struct tm *nPtr = localtime(&t1);
char now[30];
strftime(now, 30, "%Y %B %d %A", nPtr);
printf("%s\n", now);
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:cstrftime.c
功能:示範 time.h 中函數 strftime() 的使用
作者:張凱慶 */
編譯後執行,結果如下
$ gcc cstrftime.c |
$ a.out |
2017 December 30 Saturday |
$ |