std::time_put
來自 cppreference.com
定義於標頭檔案 <locale> |
||
template< class CharT, |
||
類模板 std::time_put
封裝日期和時間格式化規則。I/O 運算子 std::put_time 使用 I/O 流區域設定的 std::time_put
facet 生成 std::tm 物件的文字表示。
繼承圖
如果標準庫不保證提供 std::time_put
特化(見下文),則其 put() 和 do_put() 的行為將不保證按指定進行。
目錄 |
[編輯] 特化
標準庫保證提供以下特化(它們 要求由任何區域設定物件實現)
定義於標頭檔案
<locale> | |
std::time_put<char> | 建立日期和時間的窄字串表示 |
std::time_put<wchar_t> | 建立日期和時間的寬字串表示 |
此外,標準庫還保證提供滿足以下型別要求的每個特化:
-
CharT
是 char 和 wchar_t 之一,並且 -
OutputIt
必須滿足 LegacyOutputIterator 的要求。
[編輯] 巢狀型別
型別 | 定義 |
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) |
根據指定格式格式化並輸出日期/時間值 (函式模板) |