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 << "\n";
strftime(output, 50, "%I:%M:%S %p", datetime);
cout << output << "\n";
strftime(output, 50, "%D", datetime);
cout << output << "\n";
strftime(output, 50, "%c", datetime);
cout << output << "\n";
自己尝试 »
定义和用法
The strftime()
函数将日期和时间的 C 风格字符串表示形式(由 tm
结构提供)写入 char
数组中。format 参数指定日期和时间的表示方式。
注意:使用 gmtime()
或 localtime()
函数从时间戳获取 tm
结构。
格式字符串
格式字符串被复制到数组中,其中每个格式说明符都被生成的数值替换。下表列出了所有格式说明符
格式说明符 | 描述 | 示例 |
---|---|---|
%a |
星期几的简短表示形式 | Fri |
%A |
星期几的完整表示形式 | Friday |
%b |
月份名称的简短表示形式 | Dec |
%B |
月份名称的完整表示形式 | December |
%c |
完整的日期和时间表示形式 | Fri Dec 17 14:30:01 2023 |
%C |
世纪(相当于取 4 位数年份的前两位数字) | 20 |
%d |
月份中的日期,带有前导零 | 09 |
%D |
日期表示形式,等效于 %m/%d/%y |
12/17/23 |
%e |
月份中的日期,带有前导空格 | 9 |
%F |
日期表示形式,等效于 %Y-%m-%d |
2023-12-17 |
%g |
基于周的 2 位数年份(基于周的年份从一周的开始算起) | 23 |
%G |
基于周的 4 位数年份(基于周的年份从一周的开始算起) | 2023 |
%h |
月份名称的简短表示形式(等效于 %b ) |
Dec |
%H |
24 小时制的小时 | 14 |
%I |
12 小时制的小时 | 02 |
%j |
一年中的日期(从 0 到 365) | 351 |
%m |
月份的数字表示形式 | 351 |
%M |
一小时中的分钟 | 30 |
%n |
一个 \n 换行符 |
|
%p |
AM 或 PM | PM |
%r |
完整的 12 小时制时间格式 | 02:30:01 PM |
%R |
24 小时制时间格式,等效于 %H:%M |
14:30 |
%S |
一分钟中的秒 | 01 |
%t |
一个 \t 制表符 |
|
%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 |
2 位数年份表示形式 | 23 |
%Y |
4 位数年份表示形式 | 2023 |
%z |
数字时区偏移量 | +0000 |
%Z |
时区名称 | GMT |
%% |
一个 % 字符 |
% |
语法
strftime(char * destination, size_t size, const char * format, const struct tm * datetime);
The size_t
数据类型表示一个非负整数。
参数值
参数 | 描述 |
---|---|
destination | 必需。一个 char 数组,用于写入格式化的日期。 |
size | 必需。指定 char 数组中可用于写入的空间量,以字符为单位。 |
format | 必需。指定日期的格式。 |
datetime | 必需。一个 tm 结构,包含要表示的日期和时间的信息。 |
技术细节
返回值 | 一个数字,表示写入数组的字符数。返回值为 0 表示没有足够的可用空间来写入。 |
---|