size_t strftime(char *s, size_t maxsize, const char *format, const struct tm *timp);
strftime 将时间(位于 timp)的 struct tm 表示形式转换为字符串,从 s 开始,占用不超过 maxsize 个字符。
您可以使用 format 处的字符串来控制输出的格式。*format 可以包含两类规范:将原样复制到格式化字符串中的文本,以及时间转换规范。时间转换规范是以 `%` 开头的双字符序列(使用 `%%` 在输出中包含百分号)。每个已定义的转换规范从 *timp 中选择一个日历时间数据字段,并以下列方式之一将其转换为字符串:
- %c 表示完整日期和时间的字符串,格式为 Mon Apr 01 13:13:13 1992
- %H 小时(24 小时制),格式化为两位数字。
- %I 小时(12 小时制),格式化为两位数字。
- %j 一年中的天数,格式化为三位数字(从 `001' 到 `366')。
- %p 根据具体情况为 `AM' 或 `PM'。
- %U 周数,格式化为两位数字(从 `00' 到 `53';第 1 周被视为从一年中的第一个星期日开始)。另请参见 %W。
- %w 表示星期几的单个数字:星期日为第 0 天。
- %W 周数的另一个版本:像 `%U',但将第 1 周计为从一年中的第一个星期一开始。
- %x 表示完整日期的字符串,格式类似于 Mon Apr 01 1992
- %X 表示一天中完整时间(小时、分钟和秒)的字符串,格式类似于 13:13:13
- %Y 完整的年份,格式化为四位数字以包含世纪。
- %Z 被 ANSI C 定义为在可用时获取时区;在此实现中不可用(它接受 `%Z' 但不会为其生成输出)。
当格式化后的时间占用不超过 maxsize 个字符时,结果为格式化字符串的长度。否则,如果格式化操作因空间不足而被放弃,结果为 0,并且从 s 开始的字符串仅对应于 *format 中可以在 maxsize 限制内完全填入的那些部分。
**权威来源**: BUSMASTER DITA help source `strftime.dita`, compiled into `BUSMASTER.CHM` with the application.