std::chrono::to_stream (std::chrono::gps_time)
| template <class CharT, class Traits, class Duration> std::basic_ostream<CharT, Traits>& |
(C++20 起) | |
输出 tp 到流 os ,按照空终止格式字符串 fmt 格式化。若使用 %Z ,则将它替换加宽成 CharT 的 "GPS" 。若使用 %z 或其修饰的变体,则将格式化 0min 的偏移。
格式化的日期和时间等价于以 std::chrono::sys_time<Duration>(tp.time_since_epoch()) + std::chrono::days(3657) 初始化的 std::chrono::sys_time 的格式化日期和时间。
格式字符串
格式字符串由零或多个转换说明符和通常字符(除了 % )构成。写入除了空终止字符的所有通常字符到输出流,而不修改。每个不修饰的转换说明符以 % 字符后随确定该说明符行为的字符开始。某些转换说明符拥有在 % 字符后插入 E 或 O 修饰符的修饰形式。在输出中,按后述方式以适当的字符替换每个转换说明符。
格式字符串中,以 % 开始但不匹配下列格式说明符之一的字符序列被转译成通常字符。
下列格式说明符可用:
| 转换 说明符 |
解释 | |
|---|---|---|
%%
|
写字面的 % 字符。
| |
%n
|
写换行字符。 | |
%t
|
写水平制表符。 | |
| 年 | ||
%C %EC
|
写年份除以 100 的向下取整结果。若结果仅有一位十进制,则加上前缀 0 。
修饰的命令 | |
%y
|
写年份的低二位十进制数。若结果仅有一位,则加上前缀 0 。 | |
%Y
|
将年份写作十进制数。若结果少于四位,则向左添加 0 到四位。 | |
| 月 | ||
%b%h
|
写本地环境的缩写月名。若值不含合法月份,则调用 os.setstate(std::ios_base::failbit) 。 | |
%B
|
写本地环境的完整月名。若值不含合法月份,则调用 os.setstate(std::ios_base::failbit) 。 | |
%m%Om
|
将月写作十进制数( 1 月为 01 )。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
| 日 | ||
%d%Od
|
将月之日写作十进制。若结果仅有一个十进制位,则加上前缀 0 。
修饰的命令 | |
%e%Oe
|
将月之日写作十进制。若结果仅有一个十进制位,则加上前缀空格。
修饰的命令 | |
| 星期之日 | ||
%a
|
写本地环境的缩写星期日期名。若值不含合法的星期日期,则调用 os.setstate(std::ios_base::failbit) 。 | |
%A
|
写本地环境的完整星期日期名。若值不含合法的星期日期,则调用 os.setstate(std::ios_base::failbit) 。 | |
%u%Ou
|
将 ISO 星期日期写作十进制数 (1-7) ,其中星期一为 1 。
修饰的命令 | |
%w%Ow
|
将星期日期写作十进制数 (0-6) ,其中星期日为 0 。
修饰的命令 | |
| 基于 ISO 8601 星期的年 | ||
|
ISO 8601 星期以星期一开始,而年的首周必须满足下列要求:
| ||
%g
|
写基于 ISO 8601 星期的年的十进制低二位。若结果仅有一位,则加上前缀 0 。 | |
%G
|
将基于 ISO 8601 星期的年写作十进制数。若结果少于四位,则向左边添加 0 到四位。 | |
%V%OV
|
将年的 ISO 8601 星期序数写作十进制。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
| 年之星期/日 | ||
%j
|
将年的日序数写作十进制( 1 月 1 日为 001 )。若结果少于三位,则向左边填充 0 到三位。
| |
%U%OU
|
将年的星期序数写作十进制。年的首个星期日为 01 周的首日。同一年中先于当天者在 00 周。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
%W%OW
|
将年的星期序数写作十进制。年的首个星期一为 01 周的首日。同一年中先于当天者在 00 周。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
| 日期 | ||
%D
|
等价于 "%m/%d/%y" 。
| |
%F
|
等价于 "%Y-%m-%d" 。
| |
%x%Ex
|
写本地环境的日期表示。
修饰的命令 | |
| 当天时刻 | ||
%H%OH
|
将时( 24 小时时钟)写作十进制数。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
%I%OI
|
将时( 12 小时时钟)写作十进制数。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
%M%OM
|
将分写作十进制数。若结果仅有一位,则加上前缀 0 。
修饰的命令 | |
%S%OS
|
将秒写作十进制数。若秒数小于 10 ,则向结果加上前缀 0 。
若输入的精度不能准确地以秒表示,则格式为定点格式的十进制浮点数和匹配输入精度的精度 修饰的命令 | |
%p
|
写与 12 小时时钟关联的 AM/PM 记号的本地环境等价形式。 | |
%R
|
等价于 "%H:%M" 。
| |
%T
|
等价于 "%H:%M:%S" 。
| |
%r
|
写本地环境的 12 小时时钟时间。 | |
%X%EX
|
写本地环境的时间表示。
修饰的命令 | |
| 杂项 | ||
%c%Ec
|
写本地环境的日期和时间表示。
修饰的命令 | |
%z%Ez%Oz
|
写 ISO 8601 格式中距 UTC 的偏移。例如 -0430 指代 UTC 后 4 小时 30 分。若偏移为零,则用 +0000 。
修饰的命令 若偏移信息不可用,则调用 os.setstate(std::ios_base::failbit); 。 | |
%Z
|
写时区的缩写。
若时区缩写不可用,则调用 os.setstate(std::ios_base::failbit); 。 | |
返回值
os 。
参阅
| (C++20) |
为插入格式化可输出到流的 chrono 对象 (函数模板) |