std:: time_get
|
定义于头文件
<locale>
|
||
|
template
<
class
CharT,
|
||
类模板
std::time_get
封装了日期和时间解析规则。I/O 操纵器
std::get_time
使用 I/O 流区域设置的
std::time_get
方面将文本输入转换为
std::tm
对象。
继承关系图
如果标准库不保证提供某个
std::time_get
特化(参见下文),则其成员函数(除构造函数和析构函数外)的行为不保证符合规范。
目录 |
特化
标准库保证提供以下特化(它们 是任何 locale 对象必须实现的 ):
|
定义于头文件
<locale>
|
|
| std :: time_get < char > | 解析窄字符串表示的日期和时间 |
| std :: time_get < wchar_t > | 解析宽字符串表示的日期和时间 |
此外,标准库还保证提供满足以下类型要求的每个特化:
-
CharT是 char 和 wchar_t 之一,且 -
InputIt必须满足 LegacyInputIterator 的要求。
嵌套类型
| 类型 | 定义 |
char_type
|
CharT
|
iter_type
|
InputIt
|
数据成员
| 成员 | 描述 |
std::locale::id
id
[静态]
|
facet 的标识符 |
成员函数
构造新的
time_get
facet
(公开成员函数) |
|
析构
time_get
facet
(受保护成员函数) |
|
调用
do_date_order
(公开成员函数) |
|
调用
do_get_time
(公开成员函数) |
|
调用
do_get_date
(公开成员函数) |
|
调用
do_get_weekday
(公开成员函数) |
|
调用
do_get_monthname
(公开成员函数) |
|
调用
do_get_year
(公开成员函数) |
|
|
(C++11)
|
调用
do_get
(公开成员函数) |
受保护成员函数
|
[virtual]
|
获取日、月、年的首选排序顺序
(虚受保护成员函数) |
|
[virtual]
|
从输入流提取时、分、秒
(虚受保护成员函数) |
|
[virtual]
|
从输入流提取月、日、年
(虚受保护成员函数) |
|
[virtual]
|
从输入流提取星期几的名称
(虚受保护成员函数) |
|
[virtual]
|
从输入流提取月份名称
(虚受保护成员函数) |
|
[virtual]
|
从输入流提取年份
(虚受保护成员函数) |
|
[virtual]
(C++11)
|
根据指定格式从输入流提取日期/时间组件
(虚受保护成员函数) |
示例
注意:请选择 clang 来观察输出。libstdc++ 未能正确实现 %b 说明符: bug 78714 。
#include <iomanip> #include <iostream> #include <locale> #include <sstream> int main() { std::tm t = {}; std::istringstream ss("2011-Februar-18 23:12:34"); ss.imbue(std::locale("de_DE.utf-8")); ss >> std::get_time(&t, "%Y-%b-%d %H:%M:%S"); if (ss.fail()) std::cout << "Parse failed\n"; else std::cout << std::put_time(&t, "%c") << '\n'; }
可能的输出:
Sun Feb 18 23:12:34 2011
另请参阅
|
将
std::tm
的内容格式化为字符序列输出
(类模板) |
|
|
(C++11)
|
解析指定格式的日期/时间值
(函数模板) |