当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 strftime用法及代码示例


C语言time头文件(time.h)中strftime函数的用法及代码示例。

用法:

size_t strftime (char* ptr, size_t maxsize, const char* format,
                 const struct tm* timeptr );
将时间格式化为字符串
复制到ptr的内容format,将其格式说明符扩展为代表时间的相应值,该时间描述于timeptr,限制为maxsize字符。

参数

ptr
指向将目标C字符串复制到的目标数组的指针。
maxsize
要复制的最大字符数ptr,包括终止null-character
format
C字符串,包含常规字符和特殊格式说明符的任意组合。这些格式说明符由函数替换为相应的值,以表示在中指定的时间timeptr。它们都以百分比开头(%)符号,它们是:
说明符取而代之示例
%a工作日缩写名称*Thu
%A工作日全名*Thursday
%b月份缩写名称*Aug
%B月份全名*August
%c日期和时间表示*Thu Aug 23 14:55:02 2001
%C年份除以100,并截断为整数(00-99)20
%d每月的某天,zero-padded(01-31)23
%D短的MM/DD/YY日期,相当于%m/%d/%y08/23/01
%e每月的某天,以空格填充( 1-31)23
%F短的YYYY-MM-DD日期,相当于%Y-%m-%d2001-08-23
%g以周为基础的年份,后两位数字(00-99)01
%G以周为基础的年份2001
%h缩写的月份名称*(与%b)Aug
%H小时以24小时制(00-23)14
%I12h格式的小时(01-12)02
%j一年中的某天(001-366)235
%m以十进制数字表示的月份(01-12)08
%M分钟 (00-59)55
%nNew-line个字符('\n')
%pAM或PM指定PM
%r12小时制*02:55:02 pm
%R24小时HH:MM时间,相当于%H:%M14:55
%S第二 (00-61)02
%tHorizontal-tab个字符('\t')
%TISO 8601时间格式(HH:MM:SS), 相当于%H:%M:%S14:55:02
%uISO 8601工作日为星期一,数字为1(1-7)4
%U以第一个星期日为第一个星期的第一天的星期数(00-53)33
%VISO 8601周编号(01-53)34
%w工作日为小数,星期日为0(0-6)4
%W以第一个星期一作为第一个星期的第一天的星期数(00-53)34
%x日期表示*08/23/01
%X时间表示*14:55:02
%y年份,后两位数字(00-99)01
%YYear2001
%zISO 8601与时区UTC的偏移量(1分钟= 1、1小时= 100)
如果无法确定时区,则没有字符
+100
%Z时区名称或缩写*
如果无法确定时区,则没有字符
CDT
%%A %标志%
*标有星号(*)的说明符为locale-dependent。
注意:黄色行表示指定符和C99引入的sub-specifiers。从C99开始,两个locale-specific修饰符也可以插入在百分号(%),并在适当的情况下要求指定替代格式的说明者:
修饰符意义适用于
E使用语言环境的替代表示%Ec %EC %Ex %EX %Ey %EY
O使用语言环境的替代数字符号%Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy
timeptr
指向一个指针tm包含日历时间的结构,该时间细分为各个部分(请参见struct tm)。

返回值

如果生成的C字符串的长度(包括终止null-character)不超过maxsize,该函数返回复制到的字符总数ptr(不包括终止的null-character)。
否则,它返回零,并且由指向的数组的内容ptr是不确定的。


示例

/* strftime example */
#include <stdio.h>      /* puts */
#include <time.h>       /* time_t, struct tm, time, localtime, strftime */

int main ()
{
  time_t rawtime;
  struct tm * timeinfo;
  char buffer [80];

  time (&rawtime);
  timeinfo = localtime (&rawtime);

  strftime (buffer,80,"Now it's %I:%M%p.",timeinfo);
  puts (buffer);

  return 0;
}


输出示例:

Now it's 03:21PM.



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C strftime function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。