Spec-Zone.ru › C++

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.

cpp/locale/time base cpp/locale/locale/facetstd-time put-inheritance.svg

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

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

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

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

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

do_put
[виртуальный]
форматирует дату/время и записывает в поток вывода
(виртуальная защищенная функция-член)

Пример

#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秒

См. также

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

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

Spec-Zone.ru

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