名前空間
変種
操作

std::time_put

From cppreference.com
< cpp‎ | locale
 
 
 
 
 
ヘッダー <locale> で定義
template<

    class CharT,
    class OutputIt = std::ostreambuf_iterator<CharT>

> class time_put;

クラステンプレートstd::time_putは、日付と時刻のフォーマット規則をカプセル化します。I/Oマニピュレータ std::put_timeは、I/Oストリームのロケールのstd::time_putファセットを使用して、std::tmオブジェクトのテキスト表現を生成します。

cpp/locale/time basecpp/locale/locale/facetstd-time put-inheritance.svg

継承図

std::time_putの特殊化が標準ライブラリによって提供されることが保証されていない場合(以下を参照)、その put() および do_put() の動作は、指定されたとおりに保証されません。

目次

[編集] 特殊化

標準ライブラリは、以下の特殊化を提供することが保証されています(これらは あらゆるロケールオブジェクトによって実装される必要があります)。

ヘッダー <locale> で定義
std::time_put<char> 日付と時刻のナロー文字列表現を作成します。
std::time_put<wchar_t> 日付と時刻のワイド文字列表現を作成します。

さらに、標準ライブラリは、以下の型要件を満たすすべての特殊化を提供することも保証されています。

  • CharTcharwchar_tのいずれかであり、
  • OutputItLegacyOutputIterator の要件を満たさなければなりません。

[編集] ネストされた型

定義
char_type CharT
iter_type OutputIt

[編集] データメンバ

メンバ 説明
std::locale::id id [static] ファセットの識別子

[編集] メンバ関数

新しいtime_putファセットを構築します。
(public メンバ関数) [編集]
time_putファセットを破棄します。
(protected メンバ関数) [編集]
do_put を呼び出します。
(public メンバ関数) [編集]

[編集] protected メンバ関数

[virtual]
日付/時刻をフォーマットし、出力ストリームに書き込みます。
(virtual protected メンバ関数) [編集]

[編集]

#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)
指定されたフォーマットに従って日付/時刻の値をフォーマットして出力する
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)