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 << "
";
strftime(output, 50, "%I:%M:%S %p", datetime);
cout << output << "
";
strftime(output, 50, "%D", datetime);
cout << output << "
";
strftime(output, 50, "%c", datetime);
cout << output << "
";
亲自试一试 »
定义和用法
strftime() 函数将日期和时间(由 tm 结构提供)的 C 风格字符串表示形式写入 char 数组。format 参数指定日期和时间的表示方式。
注意: 使用 gmtime() 或 localtime() 函数可以从时间戳获取 tm 结构。
格式字符串
格式字符串会被复制到数组中,其每个 格式说明符 都会被替换为生成的值。下表列出了所有格式说明符:
| 格式说明符 | 描述 | 示例 |
|---|---|---|
%a |
星期几的简短表示 | Fri |
%A |
完整显示星期几 | Friday |
%b |
月份名称的缩写 | Dec |
%B |
月份名称的完整表示 | December |
%c |
完整的日期和时间表示 | Fri Dec 17 14:30:01 2023 |
%C |
世纪(相当于取四位数年份的前两位数字) | 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 |
A
换行符 |
|
%p |
AM 或 PM | PM |
%r |
完整的12小时制时间格式 | 02:30:01 PM |
%R |
24 小时制时间格式等效于 %H:%M |
14:30 |
%S |
一分钟内的秒数 | 01 |
%t |
A 制表符 |
|
%T |
完整的24小时制时间格式,相当于%H:%M:%S |
14:30:01 |
%u |
星期几的数字表示(从 1 到 7,星期一开始) | 7 |
%U |
一年中的周数,从 0 开始,第 1 周从当年的第一个星期日开始 | 51 |
%V |
一年中的周数,从 1 开始,第 1 周从当年的第一个星期一开始,以及上一年 1 月第一个星期一之前的任何一天 | 50 |
%w |
星期几的数字表示(从 0 到 6,星期日开始) | 0 |
%W |
一年中的周数,从 0 开始,第 1 周从每年的第一个星期一开始 | 50 |
%x |
基于区域设置的日期表示 | 12/17/23 |
%X |
基于本地化的时间表示 | 14:30:01 |
%y |
两位数年份表示 | 23 |
%Y |
四位数年份表示 | 2023 |
%z |
数字时区偏移量 | +0000 |
%Z |
时区名称 | GMT |
%% |
一个 % 字符 |
% |
语法
strftime(char * destination, size_t size, const char * format, const struct tm * datetime);
size_t 数据类型表示一个非负整数。
参数值
| 参数 | 描述 |
|---|---|
| destination | 必需。用于写入格式化日期的 char 数组。 |
| size | 必需。指定 char 数组中可用于写入的空间大小,以字符为单位。 |
| format | 必需。指定日期的格式。 | datetime | 必需。包含要表示的日期和时间信息的 tm 结构。 |
技术细节
| 返回值: | 返回一个数字,表示已写入数组的字符数。返回值为 0 表示数组空间不足,无法写入。 |
|---|

