Spec-Zone.ru › C++

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.

cpp/locale/time base cpp/locale/locale/facetstd-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

Члены-функции

(конструктор)
создаёт новый компонент time_get
(публичный метод)
(деструктор)
уничтожает компонент time_get
(защищённый метод)
date_order
вызывает do_date_order
(публичный метод)
get_time
вызывает do_get_time
(публичный метод)
get_date
вызывает do_get_date
(публичный метод)
get_weekday
вызывает do_get_weekday
(публичный метод)
get_monthname
вызывает do_get_monthname
(публичный метод)
get_year
вызывает do_get_year
(публичный метод)
get
(C++11)
вызывает do_get
(публичный метод)

Члены-объекты

static std::locale::id id
id локали
(общедоступный член-объект)

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

do_date_order
[virtual]
получает предпочтительный порядок дня, месяца и года
(виртуальная защищенная член-функция)
do_get_time
[virtual]
извлекает часы, минуты и секунды из входного потока
(виртуальная защищенная член-функция)
do_get_date
[virtual]
извлекает месяц, день и год из входного потока
(виртуальная защищенная член-функция)
do_get_weekday
[virtual]
извлекает название дня недели из входного потока
(виртуальная защищенная член-функция)
do_get_monthname
[virtual]
извлекает имя месяца из входного потока
(виртуальная защищенная член-функция)
do_get_year
[virtual]
извлекает год из входного потока
(виртуальная защищенная член-функция)
do_get
[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

См. также

time_put
форматирует содержимое std::tm для вывода в виде последовательности символов
(шаблон класса)
get_time
(C++11)
анализирует значение даты/времени указанного формата
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/time_get

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API