名稱空間
變體
操作

std::time_put

來自 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 facet 生成 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> 建立日期和時間的寬字串表示

此外,標準庫還保證提供滿足以下型別要求的每個特化:

[編輯] 巢狀型別

型別 定義
char_type CharT
iter_type OutputIt

[編輯] 資料成員

成員 描述
std::locale::id id [static] facet 的識別符號

[編輯] 成員函式

構造新的 time_put facet
(public 成員函式) [編輯]
析構 time_put facet
(protected 成員函式) [編輯]
呼叫 do_put
(public 成員函式) [編輯]

[編輯] 受保護的成員函式

[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)
根據指定格式格式化並輸出日期/時間值
(函式模板) [編輯]