std::time_put
Определено в заголовке <locale> | ||
|---|---|---|
template<
class CharT,
class OutputIt = std::ostreambuf_iterator<CharT>
> class time_put;
|
Шаблон класса std::time_put encapsulates правила форматирования даты и времени. Ввод/вывод манипулятор std::put_time использует компонент std::time_put области локализации потока ввода/вывода для генерации текстового представления объекта std::tm.
Диаграмма наследования
Если специализация std::time_put не гарантируется стандартной библиотекой (см. ниже), поведение ее put() и do_put() не гарантируется в соответствии с указанным спецификацией.
Специализации
Стандартная библиотека гарантирует предоставление следующих специализаций (они должны быть реализованы любым объектом области локализации):
Определено в заголовке <locale> |
|
|---|---|
| std::time_put<char> | создает узкие строковые представления даты и времени |
| std::time_put<wchar_t> | создает широкие строковые представления даты и времени |
Кроме того, стандартная библиотека также гарантирует предоставление каждой специализации, которая удовлетворяет следующим требованиям типа:
-
CharTявляется одним из char и wchar_t, и -
OutputItдолжно соответствовать требованиям LegacyOutputIterator.
Типы членов
| Тип члена | Определение |
|---|---|
char_type | CharT |
iter_type | OutputIt |
Члены-функции
создает новый компонент time_put (публичная функция-член) |
|
уничтожает компонент time_put (защищенная функция-член) |
|
вызывает do_put (публичная функция-член) |
Члены-объекты
| static std::locale::id id | id области локализации (публичный объект-член) |
Защищенные функции-члены
|
[виртуальный] | форматирует дату/время и записывает в поток вывода (виртуальная защищенная функция-член) |
Пример
#include <codecvt>
#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
std::time_t t = std::time(nullptr);
std::wbuffer_convert<std::codecvt_utf8<wchar_t>> conv(std::cout.rdbuf());
std::wostream out(&conv);
out.imbue(std::locale("ja_JP.utf8"));
// this I/O manipulator std::put_time uses std::time_put<wchar_t>
out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
}Вывод:
水曜日 2011年11月09日 12時32分05秒
См. также
представляет std::time_put системы для области локализации с именем (шаблон класса) |
|
анализирует значения даты/времени из последовательности входных символов в 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_put