std::chrono::to_stream (std::chrono::duration)

来自cppreference.com
< cpp‎ | chrono‎ | duration
 
 
 
日期和时间工具
(C++11)
(C++11)
时钟
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
日历
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
时区
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C 风格日期和时间
 
 
template< class CharT, class Traits, class Rep, class Period >

std::basic_ostream<CharT, Traits>&
to_stream(std::basic_ostream<CharT, Traits>& os, const CharT* fmt,

          const std::chrono::duration<Rep, Period>& d);
(C++20 起)

输出 d (转译成自午夜起的当天时间)到流 os 中,按照空终止格式字符串 fmt 格式化。

格式字符串

格式字符串由零或多个转换指定符和通常字符(除了 % )构成。写入除了空终止字符的所有通常字符到输出流,而不修改。每个不修饰的转换指定符以 % 字符后随确定该指定符行为的字符开始。某些转换指定符拥有在 % 字符后插入 EO 修饰符的修饰形式。在输出中,按后述方式以适当的字符替换每个转换指定符。

格式字符串中,以 % 开始但不匹配下列格式指定符之一的字符序列被转译成通常字符。

下列格式指定符可用:

转换
指定符
解释
%% 写字面的 % 字符。
%n 写换行字符。
%t 写水平制表符。
当天时刻
%H
%OH
将时( 24 小时时钟)写作十进制数。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OH 写本地环境的替用表示。

%I
%OI
将时( 12 小时时钟)写作十进制数。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OI 写本地环境的替用表示。

%M
%OM
将分写作十进制数。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OM 写本地环境的替用表示。

%S
%OS
将秒写作十进制数。若秒数小于 10 ,则向结果加上前缀 0 。

若输入的精度不能准确地以秒表示,则格式为定点格式的十进制浮点数和匹配输入精度的精度
(或若不能在 18 位小数内转换完浮点十进制秒数,则为微秒精度)。按照本地环境本地化小数点的字符。

修饰的命令 %OS 写本地环境的替用表示。

%p 写与 12 小时时钟关联的 AM/PM 记号的本地环境等价形式。
%R 等价于 "%H:%M"
%T 等价于 "%H:%M:%S"
%r 写本地环境的 12 小时时钟时间。
%X
%EX
写本地环境的时间表示。

修饰的命令 %EX 写本地环境的替用时间表示。

下列指定符得到辨识,但它们将导致在 os 中设置 std::ios_base::failbit

转换
指定符
解释
%C
%EC
写年份除以 100 的向下取整结果。若结果仅有一位十进制,则加上前缀 0 。

修饰的命令 %EC 写世纪的本地环境替用表示。

%y 写年份的低二位十进制数。若结果仅有一位,则加上前缀 0 。
%Y 将年份写作十进制数。若结果少于四位,则向左添加 0 到四位。
%b
%h
写本地环境的缩写月名。若值不含合法月份,则调用 os.setstate(std::ios_base::failbit)
%B 写本地环境的完整月名。若值不含合法月份,则调用 os.setstate(std::ios_base::failbit)
%m
%Om
将月写作十进制数( 1 月为 01 )。若结果仅有一位,则加上前缀 0 。

修饰的命令 %Om 写本地环境的替用表示。

%d
%Od
将月之日写作十进制。若结果仅有一个十进制位,则加上前缀 0 。

修饰的命令 %Od 写本地环境的替用表示。

%e
%Oe
将月之日写作十进制。若结果仅有一个十进制位,则加上前缀空格。

修饰的命令 %Oe 写本地环境的替用表示。

星期之日
%a 写本地环境的缩写星期日期名。若值不含合法的星期日期,则调用 os.setstate(std::ios_base::failbit)
%A 写本地环境的完整星期日期名。若值不含合法的星期日期,则调用 os.setstate(std::ios_base::failbit)
%u
%Ou
将 ISO 星期日期写作十进制数 (1-7) ,其中星期一为 1

修饰的命令 %Ou 写本地环境的替用表示。

%w
%Ow
将星期日期写作十进制数 (0-6) ,其中星期日为 0

修饰的命令 %Ow 写本地环境的替用表示。

基于 ISO 8601 星期的年

ISO 8601 星期以星期一开始,而年的首周必须满足下列要求:

  • 包含 1 月 4 日
  • 包含该年的首个星期四
%g 写基于 ISO 8601 星期的年的十进制低二位。若结果仅有一位,则加上前缀 0 。
%G 将基于 ISO 8601 星期的年写作十进制数。若结果少于四位,则向左边添加 0 到四位。
%V
%OV
将年的 ISO 8601 星期序数写作十进制。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OV 写本地环境的替用表示。

年之星期/日
%j 将年的日序数写作十进制( 1 月 1 日为 001 )。若结果少于三位,则向左边填充 0 到三位。
%U
%OU
将年的星期序数写作十进制。年的首个星期日为 01 周的首日。同一年中先于当天者在 00 周。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OU 写本地环境的替用表示。

%W
%OW
将年的星期序数写作十进制。年的首个星期一为 01 周的首日。同一年中先于当天者在 00 周。若结果仅有一位,则加上前缀 0 。

修饰的命令 %OW 写本地环境的替用表示。

日期
%D 等价于 "%m/%d/%y"
%F 等价于 "%Y-%m-%d"
%x
%Ex
写本地环境的日期表示。

修饰的命令 %Ex 产生本地环境的替用日期表示。

杂项
%c
%Ec
写本地环境的日期和时间表示。

修饰的命令 %Ec 写本地环境的日期和时间表示。

%z
%Ez
%Oz
写 ISO 8601 格式中距 UTC 的偏移。例如 -0430 指代 UTC 后 4 小时 30 分。若偏移为零,则用 +0000

修饰的命令 %Ez%Oz 在时和分间插入 : (如 -04:30 )。

若偏移信息不可用,则调用 os.setstate(std::ios_base::failbit);

%Z 写时区的缩写。

若时区缩写不可用,则调用 os.setstate(std::ios_base::failbit);

返回值

os

参阅

(C++20)
为插入格式化可输出到流的 chrono 对象
(函数模板)