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
ファセットを構築する
(public member function) |
|
(destructor)
|
time_put_byname
ファセットを破棄する
(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
)
;
|
(C++11以降) | |
指定されたロケール名
name
に対して新しい
std::time_put_byname
ファセットを構築します。
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
の内容を文字シーケンスとして出力するためにフォーマットする
(クラステンプレート) |