Namespaces
Variants

std:: time_get

From cppreference.net
Определено в заголовочном файле <locale>
template <

class CharT,
class InputIt = std:: istreambuf_iterator < CharT >

> class time_get ;

Шаблон класса std::time_get инкапсулирует правила парсинга даты и времени. Манипулятор ввода-вывода std::get_time использует аспект std::time_get локали потока ввода-вывода для преобразования текстового ввода в объект std::tm .

cpp/locale/time base cpp/locale/locale/facet std-time get-inheritance.svg

Диаграмма наследования

Если специализация 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

Члены данных

Участник Описание
std::locale::id id [static] идентификатор аспекта

Функции-члены

создает новый 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
(публичная функция-член)

Защищенные функции-члены

[virtual]
получает предпочтительный порядок дня, месяца и года
(виртуальная защищенная функция-член)
[virtual]
извлекает часы, минуты и секунды из входного потока
(виртуальная защищенная функция-член)
[virtual]
извлекает месяц, день и год из входного потока
(виртуальная защищенная функция-член)
извлекает название дня недели из входного потока
(виртуальная защищенная функция-член)
извлекает название месяца из входного потока
(виртуальная защищенная функция-член)
[virtual]
извлекает год из входного потока
(виртуальная защищенная функция-член)
[virtual] (C++11)
извлекает компоненты даты/времени из входного потока в соответствии с указанным форматом
(виртуальная защищенная функция-член)

Унаследовано от std:: time_base

Вложенные типы

Тип Определение
dateorder тип перечисления порядка дат, определяющий значения no_order , dmy , mdy , ymd , и ydm

Пример

Примечание: для просмотра вывода выберите 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)
парсит значение даты/времени указанного формата
(шаблон функции)