std::time_get
Определено в заголовке <locale> | ||
|---|---|---|
template<
class CharT,
class InputIt = std::istreambuf_iterator<CharT>
> class time_get;
|
Шаблон класса std::time_get описывает правила разбора даты и времени. Манипулятор ввода-вывода std::get_time использует компонент std::time_get области языка потока ввода-вывода для преобразования входного текста в объект std::tm.
Диаграмма наследования
Если специализация std::time_get не гарантируется стандартной библиотекой (см. ниже), поведение ее методов (кроме конструктора и деструктора) не гарантируется в соответствии со спецификацией.
Специализации
Стандартная библиотека гарантирует предоставление следующих специализаций (они должны быть реализованы любым объектом области языка):
Определено в заголовке <locale> |
|
|---|---|
| std::time_get<char> | парсит строковые представления даты и времени узкого типа |
| std::time_get<wchar_t> | парсит строковые представления даты и времени широкого типа |
Кроме того, стандартная библиотека гарантирует предоставление любой специализации, которая удовлетворяет следующим требованиям типа:
-
CharTдолжно быть char или wchar_t, и -
InputItдолжно соответствовать требованиям LegacyInputIterator.
Типы членов
| Тип члена | Определение |
|---|---|
char_type | CharT |
iter_type | InputIt |
Члены-функции
создаёт новый компонент time_get (публичный метод) |
|
уничтожает компонент time_get (защищённый метод) |
|
вызывает do_date_order (публичный метод) |
|
вызывает do_get_time (публичный метод) |
|
вызывает do_get_date (публичный метод) |
|
вызывает do_get_weekday (публичный метод) |
|
вызывает do_get_monthname (публичный метод) |
|
вызывает do_get_year (публичный метод) |
|
|
(C++11) | вызывает do_get (публичный метод) |
Члены-объекты
| static std::locale::id id | id локали (общедоступный член-объект) |
Защищенные член-функции
|
[virtual] | получает предпочтительный порядок дня, месяца и года (виртуальная защищенная член-функция) |
|
[virtual] | извлекает часы, минуты и секунды из входного потока (виртуальная защищенная член-функция) |
|
[virtual] | извлекает месяц, день и год из входного потока (виртуальная защищенная член-функция) |
|
[virtual] | извлекает название дня недели из входного потока (виртуальная защищенная член-функция) |
|
[virtual] | извлекает имя месяца из входного потока (виртуальная защищенная член-функция) |
|
[virtual] | извлекает год из входного потока (виртуальная защищенная член-функция) |
|
[virtual] (C++11) | извлекает компоненты даты/времени из входного потока в соответствии с указанным форматом (виртуальная защищенная член-функция) |
Наследуется от std::time_base
| Тип | Определение |
|---|---|
dateorder | перечисление порядка дат, определяющее значения no_order, dmy, mdy, ymd, и ydm |
Пример
Примечание: выберите clang, чтобы увидеть вывод. libstdc++ не реализует спецификатор %b правильно: ошибка 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) | анализирует значение даты/времени указанного формата (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/time_get