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 |
Члены-данные
| Член | Описание |
|---|---|
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] | извлекает название месяца из входного потока (виртуальная защищённая функция-член) |
|
[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/cpp/locale/time_get