C++ 参考手册
- C++11
- C++14
- C++17
- C++20
- C++ 编译器支持情况表
- 独立与宿主实现
- C++ 语言
- C++ 关键词
- 预处理器
- C++ 标准库头文件
- 具名要求
- 功能特性测试 (C++20)
- 工具库
- 类型支持(基本类型、RTTI、类型特性)
- 概念库 (C++20)
- 错误处理
- 动态内存管理
- 日期和时间工具
- std::chrono::duration
- std::chrono::ceil(std::chrono::duration)
- std::chrono::round(std::chrono::duration)
- std::chrono::abs(std::chrono::duration)
- operator+,-,*,/,%(std::chrono::duration)
- operator==,!=,<,<=,>,>=,<=>(std::chrono::duration)
- std::chrono::duration_cast
- std::chrono::floor(std::chrono::duration)
- std::common_type(std::chrono::duration)
- std::formatter<std::chrono::duration>
- std::chrono::duration<Rep,Period>::operator+=, -=, *=, /=, %=
- std::chrono::operator<< (std::chrono::duration)
- std::chrono::from_stream (std::chrono::duration)
- std::chrono::duration<Rep,Period>::max
- std::chrono::duration<Rep,Period>::operator+(unary), std::chrono::duration<Rep,Period>::operator-(unary)
- std::chrono::duration<Rep,Period>::operator++, std::chrono::duration<Rep,Period>::operator--
- std::chrono::duration<Rep,Period>::zero
- std::chrono::duration<Rep,Period>::min
- std::chrono::duration<Rep,Period>::duration
- std::chrono::duration<Rep,Period>::operator=
- std::chrono::duration<Rep,Period>::count
- std::chrono::clock_cast
- std::chrono::is_am, std::chrono::is_pm, std::chrono::make12, std::chrono::make24
- std::chrono::system_clock
- std::chrono::steady_clock
- std::chrono::high_resolution_clock
- std::chrono::clock_time_conversion
- std::chrono::time_point
- C 日期和时间工具
- std::chrono::is_clock
- std::chrono::utc_clock
- std::chrono::tai_clock
- std::chrono::gps_clock
- std::chrono::file_clock
- std::chrono::local_t
- std::chrono::day
- std::chrono::month
- std::chrono::year
- std::chrono::weekday
- std::chrono::operator/ (日历)
- std::chrono::year_month_day
- std::chrono::year_month_day_last
- std::chrono::year_month_weekday
- std::chrono::year_month_weekday_last
- std::chrono::weekday_indexed
- std::chrono::weekday_last
- std::chrono::month_day
- std::chrono::month_day_last
- std::chrono::month_weekday
- std::chrono::month_weekday_last
- std::chrono::year_month
- std::chrono::tzdb
- std::chrono::tzdb_list
- std::chrono::get_tzdb_list, std::chrono::get_tzdb, std::chrono::remote_version, std::chrono::reload_tzdb
- std::chrono::time_zone
- std::chrono::locate_zone
- std::chrono::current_zone
- std::chrono::zoned_time
- std::chrono::time_zone_link
- std::chrono::leap_second
- std::chrono::time_of_day
- std::chrono::last_spec
- std::chrono::treat_as_floating_point
- std::literals::chrono_literals::operator""ns
- std::literals::chrono_literals::operator""y
- std::literals::chrono_literals::operator""d
- std::literals::chrono_literals::operator""s
- std::literals::chrono_literals::operator""ms
- std::literals::chrono_literals::operator""us
- std::literals::chrono_literals::operator""h
- std::literals::chrono_literals::operator""min
- std::chrono::duration_values
- std::chrono::nonexistent_local_time
- std::chrono::ambiguous_local_time
- 注释
- 字符串库
- 容器库
- 迭代器库
- 范围库 (C++20)
- 算法库
- 数值库
- 输入/输出库
- 文件系统库
- 本地化库
- 正则表达式库
- 原子操作库
- 线程支持库
- 实验性 C++ 特性
- 有用的资源
- 索引
- std 符号索引
- 协程支持 (C++20)
- C++ 关键词
位置:首页 > C++ 参考手册 >日期和时间工具 >std::chrono::duration > std::chrono::from_stream (std::chrono::duration)
std::chrono::from_stream (std::chrono::duration)
template< class CharT, class Traits, class Rep, class Period, class Alloc = std::allocator<CharT> > |
(C++20 起) | |
试图按照格式字符串 fmt
分析输入流 is
到 std::chrono::duration d
中,转译为自午夜起的当天时间。
表现为无格式输入函数 (UnformattedInputFunction) ,除了它在 is.gcount() 上有未指定的效果。构造并检查 sentry
对象后,试图按照 fmt
所指定的格式分析输入流 is
到 d
中。若分析无法解码合法的 duration
,则调用 is.setstate(std::ios_base::failbit) 并且不修改 d
。
若使用并格式指定符 %Z
并成功分析,则若 abbrev
非空则将分析的值赋给 *abbrev 。若使用 %z
或修饰的变体并成功分析,则若 offset
非空则将分析的值赋给 *offset 。
格式字符串
格式字符串由零或更多个转换说明符和通常字符组成。每个通常字符,除了空白字符和空终止字符,都匹配一个来自输入流的等同字符,或若流上的下个字符不比较相等则导致函数失败。
每个空白字符匹配输入流中的零或更多个空白字符。
每个不修饰的转换说明符以 %
字符后随一个确定说明符行为的字符开始。某些转换说明符拥有在 %
字符后插入修饰字符 E
或 O
的修饰形式。某些转换说明符拥有在 %
字符后插入作为十进制整数(下面显示为 N
)的宽度参数的修饰形式。每个转换说明符导致匹配的字符被按照下表转译成时间和日期类型的部分。
格式字符串中,以 %
开始但不匹配下列转换说明符之一的字符序列被转译成通常字符。
若 from_stream
无法分析格式字符串所指定的每项内容,或若分析出的信息不足以指定完整结果,或若分析透露矛盾的信息,则调用 is.setstate(std::ios_base::failbit) 。
下列转换说明符可用:
转换 说明符 |
解释 | |
---|---|---|
%%
|
匹配字面的 % 字符。
| |
%n
|
匹配一个空白字符。 | |
%t
|
匹配零或一个空白字符。 | |
年 | ||
%C %NC %EC %OC
|
将世纪分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修饰的命令 | |
%y %Ny %Ey %Oy
|
分析年的低二位十进制位。若不另外指定世纪(例如用 %C ),则预设范围 [69, 99] 中的值指代 1969 至 1999 年, 而预设范围 [00, 68] 中的值指代 2000 至 2068 年。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 修饰的命令 | |
%Y %NY %EY
|
将年分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 4 。容许但不要求前导零。
修饰的命令 | |
月 | ||
%b %B %h
|
分析本地环境的完整或缩写的无关大小写的月名。 | |
%m %Nm %Om
|
将月份分析成十进制数(一月为 1 )。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修饰的命令 | |
日 | ||
%d %Nd %Od %e %Ne %Oe
|
将月之日分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修改的命令 | |
星期之日 | ||
%a %A
|
分析本地环境的完整或缩写的无关大小写的星期之日名。 | |
%u %Nu %Ou
|
分析 ISO 星期之日为十进制数 (1-7) ,其中星期一为 1 。宽度 N 指定要读取的最大字符数。默认宽度为 1 。容许但不要求前导零。
修饰的命令 | |
%w %Nw %Ow
|
分析星期之日为十进制数 (0-6) ,其中星期日为 0 。宽度 N 指定要读取的最大字符数。默认宽度为 1 。容许但不要求前导零。
修饰的命令 | |
基于 ISO 8601 星期的年 | ||
ISO 8601 中,星期始于星期一,而每年的首周必须满足下列要求:
| ||
%g %Ng
|
分析基于 ISO 8601 的年的低二位十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 | |
%G %NG
|
将基于 ISO 8601 的年分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 4 。容许但不要求前导零。 | |
%V %NV
|
将基于 ISO 8601 的年之星期分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 | |
年之星期/日 | ||
%j %Nj
|
分析年之日为十进制数( 1 月 1 日为 1 )。宽度 N 指定要读取的最大字符数。默认宽度为 3 。容许但不要求前导零。
| |
%U %NU
|
分析年之星期为十进制数。该年的首个星期日是星期 01 的首日。同年中先于该天的日期属于星期 00 。 宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 | |
%W %NW
|
分析年之星期为十进制数。该年的首个星期一是星期 01 的首日。同年中先于该天的日期属于星期 00 。 宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 | |
日期 | ||
%D
|
等价于 "%m/%d/%y" 。
| |
%F %NF
|
等价于 "%Y-%m-%d" 。若指定宽度,则它只应用于 %Y 。
| |
%x %Ex
|
分析本地环境的日期表示。
修饰的命令 | |
当天时刻 | ||
%H %NH %OH
|
将时( 24 小时时钟)分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修饰的命令 | |
%I %NI
|
将时( 12 小时时钟)分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。 | |
%M %NM %OM
|
将分分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修饰的命令 | |
%S %NS %OS
|
将秒分析成十进制数。宽度 N 指定要读取的最大字符数。默认宽度为 2 。容许但不要求前导零。
修饰的命令 | |
%p
|
分析与 12 小时时钟关联的 AM/PM 记法的本地环境等价版本。 | |
%R
|
等价于 "%H:%M" 。
| |
%T
|
等价于 "%H:%M:%S" 。
| |
%r
|
分析本地环境的 12 小时时钟时刻。 | |
%X %EX
|
分析本地环境的时刻表示。
修饰的命令 | |
杂项 | ||
%c %Ec
|
分析本地环境的日期和时间表示。
修饰的命令 | |
%z %Ez %Oz
|
以格式 [+|-]hh[mm] 分析距 UTC 的偏移。例如 -0430 指代落后 UTC 4 小时 30 分,而 04 指代领先 UTC 4 小时。
修饰的命令 | |
%Z
|
分析时区缩写或名称,取仅含字符 A 到 Z 、 a 到 z 、 0 到 9 、 - 、 + 、 _ 和 / 的最长字符序列。
|
返回值
is
。
参阅
(C++20) |
从流分析 chrono 对象 (函数模板) |