strftime() - C语言库函数

C库函数 size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr) 格式表示的时间结构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 中指定的时间来表示。格式说明符:

指示符 取代 例子
%a Abbreviated weekday name Sun
%A Full weekday name Sunday
%b Abbreviated month name Mar
%B Full month name March
%c Date and time representation Sun Aug 19 02:56:02 2012
%d Day of the month (01-31) 19
%H Hour in 24h format (00-23) 14
%I Hour in 12h format (01-12) 05
%j Day of the year (001-366) 231
%m Month as a decimal number (01-12) 08
%M Minute (00-59) 55
%p AM or PM designation PM
%S Second (00-61) 02
%U Week number with the first Sunday as the first day of week one (00-53) 33
%w Weekday as a decimal number with Sunday as 0 (0-6) 4
%W Week number with the first Monday as the first day of week one (00-53) 34
%x Date representation 08/19/12
%X Time representation 02:50:06
%y Year, last two digits (00-99) 01
%Y Year 2012
%Z Timezone name or abbreviation CDT
%% A % sign %
  • timeptr -- 这是为tm结构的指针,它包含一个日历时间分解成其组成部分,如下图所示:

#include <stdio.h>#include <time.h>int main (){ time_t rawtime; struct tm *info; char buffer[80]; time( &rawtime ); info = localtime( &rawtime ); strftime(buffer,80,"%x - %I:%M%p", info); printf("Formatted date & time : |%s|", buffer ); return(0);}

让我们编译和运行上面的程序,这将产生以下结果:

Formatted date & time : |08/23/12 - 12:40AM|