std::time_put
Определён в заголовочном файле <locale> | ||
|---|---|---|
template<
class CharT,
class OutputIt = std::ostreambuf_iterator<CharT>
> class time_put;
|
Шаблон класса std::time_put инкапсулирует правила форматирования даты и времени. Манипулятор ввода-вывода 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 |
Члены-данные
| Член | Описание |
|---|---|
std::locale::id id [static] | идентификатор фасета |
Функции-члены
создаёт новый фасет time_put (открытая функция-член) |
|
уничтожает фасет time_put (защищённая функция-член) |
|
вызывает 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秒
См. также
представляет предоставляемый системой std::time_put для именованной локали (шаблон класса) |
|
разбирает значения времени/даты из входной последовательности символов в std::tm (шаблон класса) |
|
|
(C++11) | форматирует и выводит значение даты/времени в соответствии с указанным форматом (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/time_put