std::time_put_byname
提供: cppreference.com
ヘッダ <locale> で定義 | ||
template<class CharT, class OutputIterator =std::ostreambuf_iterator<CharT>> class time_put_byname :publicstd::time_put<CharT, OutputIterator>; | ||
std::time_put_byname は構築時に指定されたロケールの時間と日付の書式化ルールをカプセル化する std::time_put ファセットです。
2つの特殊化が標準ライブラリによって提供されます。
ヘッダ <locale> で定義 | |
std::time_put_byname<char, OutputIterator> | ナロー/マルチバイトの時間の書式化 |
std::time_put_byname<wchar_t, OutputIterator> | ワイド文字列の時間の書式化 |
目次 |
[編集]メンバ型
メンバ型 | 定義 |
char_type | CharT |
iter_type | OutputIterator |
[編集]メンバ関数
コンストラクタ | 新しい time_put_byname ファセットを構築します (パブリックメンバ関数) |
デストラクタ | time_put_byname ファセットを破棄します (プロテクテッドメンバ関数) |
std::time_put_byname::time_put_byname
explicit time_put_byname(constchar* name, std::size_t refs =0); | ||
explicit time_put_byname(conststd::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 から継承
メンバオブジェクト
メンバ名 | 型 |
id (static) | std::locale::id |
メンバ関数
do_put を呼びます ( std::time_put<CharT,OutputIt> のパブリックメンバ関数) |
プロテクテッドメンバ関数
[仮想] | 日付/時間を書式化し出力ストリームに書き込みます ( std::time_put<CharT,OutputIt> の仮想プロテクテッドメンバ関数) |
[編集]例
この例は様々な time_put_byname ファセットによって time_put ファセットを置き換えた "C" ロケールを用いて現在の時間を表示します。
Run this code
#include <iostream>#include <ctime>#include <iomanip>#include <codecvt> int main(){std::time_t t =std::time(NULL);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"))); 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';}
出力例:
木曜日 2012年08月09日 21時41分02秒 Четверг Чт. 09 авг. 2012 21:41:02 torsdag tor 9 aug 2012 21:41:02
[編集]関連項目
文字シーケンスとして出力するために structstd::tm の内容をフォーマットします (クラステンプレート) |