std:: time_put_byname
|
Определено в заголовочном файле
<locale>
|
||
|
template
<
class
CharT,
|
||
std::time_put_byname
представляет собой фасет
std::time_put
, который инкапсулирует правила форматирования времени и даты для локали, указанной при его создании.
Содержание |
Специализации
Стандартная библиотека гарантированно предоставляет каждую специализацию, удовлетворяющую следующим требованиям к типам:
-
CharTявляется одним из char и wchar_t , и -
OutputItдолжен удовлетворять требованиям LegacyOutputIterator .
Вложенные типы
| Тип | Определение |
char_type
|
CharT
|
iter_type
|
OutputIt
|
Функции-члены
|
(constructor)
|
создает новый
time_put_byname
фасет
(публичная функция-член) |
|
(destructor)
|
уничтожает
time_put_byname
фасет
(защищенная функция-член) |
std::time_put_byname:: time_put_byname
|
explicit
time_put_byname
(
const
char
*
name,
std::
size_t
refs
=
0
)
;
|
||
|
explicit
time_put_byname
(
const
std::
string
&
name,
std::
size_t
refs
=
0
)
;
|
(начиная с C++11) | |
Создает новый фасет
std::time_put_byname
для локали с именем
name
.
refs используется для управления ресурсами: если refs == 0 , реализация уничтожает фасет, когда уничтожается последний объект std::locale , содержащий его. В противном случае объект не уничтожается.
Параметры
| name | - | имя локали |
| refs | - | количество ссылок, связывающих фасет |
std::time_put_byname:: ~time_put_byname
|
protected
:
~time_put_byname ( ) ; |
||
Уничтожает фацет.
Унаследовано от std:: time_put
Члены данных
| Член | Описание |
std::locale::id
id
[static]
|
идентификатор аспекта |
Функции-члены
вызывает
do_put
(публичная функция-член
std::time_put<CharT,OutputIt>
)
|
Защищённые функции-члены
|
[virtual]
|
форматирует дату/время и записывает в выходной поток
(виртуальная защищённая функция-член
std::time_put<CharT,OutputIt>
)
|
Пример
Выводит текущее время с использованием локали "C" с заменой фасета
time_put
различными фасетами
std::time_put_byname
. Показанный результат был получен с использованием компилятора clang.
#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(out.getloc(), new std::time_put_byname<wchar_t>("ja_JP.utf8"))); out << std::put_time(std::localtime(&t), L"%A %c") << '\n'; out.imbue(std::locale(out.getloc(), new std::time_put_byname<wchar_t>("ru_RU.utf8"))); out << std::put_time(std::localtime(&t), L"%A %c") << '\n'; out.imbue(std::locale(out.getloc(), new std::time_put_byname<wchar_t>("sv_SE.utf8"))); out << std::put_time(std::localtime(&t), L"%A %c") << '\n'; }
Возможный вывод:
木曜日 2023年10月05日 19時44分51秒 Четверг Чт 05 окт 2023 19:44:51 torsdag tor 5 okt 2023 19:44:51
Смотрите также
|
форматирует содержимое
std::tm
для вывода в виде последовательности символов
(шаблон класса) |