std:: time_put_byname
|
Defined in header
<locale>
|
||
|
template
<
class
CharT,
|
||
std::time_put_byname
is a
std::time_put
facet which encapsulates time and date formatting rules of the locale specified at its construction.
Contents |
Specializations
The standard library is guaranteed to provide every specialization that satisfies the following type requirements:
-
CharTis one of char and wchar_t , and -
OutputItmust meet the requirements of LegacyOutputIterator .
Nested types
| Type | Definition |
char_type
|
CharT
|
iter_type
|
OutputIt
|
Member functions
|
(constructor)
|
constructs a new
time_put_byname
facet
(public member function) |
|
(destructor)
|
destroys a
time_put_byname
facet
(protected member function) |
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
)
;
|
(since C++11) | |
Constructs a new
std::time_put_byname
facet for a locale with
name
.
refs is used for resource management: if refs == 0 , the implementation destroys the facet, when the last std::locale object holding it is destroyed. Otherwise, the object is not destroyed.
Parameters
| name | - | the name of the locale |
| refs | - | the number of references that link to the facet |
std::time_put_byname:: ~time_put_byname
|
protected
:
~time_put_byname ( ) ; |
||
Destroys the facet.
Inherited from std:: time_put
Data members
| Member | Description |
std::locale::id
id
[static]
|
the identifier of the facet |
Member functions
invokes
do_put
(public member function of
std::time_put<CharT,OutputIt>
)
|
Protected member functions
|
[virtual]
|
formats date/time and writes to output stream
(virtual protected member function of
std::time_put<CharT,OutputIt>
)
|
Example
Prints current time using the "C" locale with the
time_put
facet replaced by various
std::time_put_byname
facets. The result shown was obtained using the clang compiler.
#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'; }
Possible output:
木曜日 2023年10月05日 19時44分51秒 Четверг Чт 05 окт 2023 19:44:51 torsdag tor 5 okt 2023 19:44:51
See also
|
formats contents of
std::tm
for output as character sequence
(class template) |