std::time_get
From cppreference.com
| ヘッダー <locale> で定義 |
||
| template< class CharT, |
||
クラステンプレートstd::time_getは、日付と時刻の解析ルールをカプセル化します。I/Oマニピュレータstd::get_timeは、I/Oストリームのロケールのstd::time_getファセットを使用して、テキスト入力をstd::tmオブジェクトに変換します。
継承図
std::time_getの特殊化が標準ライブラリによって提供されることが保証されていない場合(下記参照)、そのメンバ関数(コンストラクタとデストラクタを除く)の動作は指定された通りに保証されません。
目次 |
[編集] 特殊化
標準ライブラリは、以下の特殊化を提供することが保証されています(これらは あらゆるロケールオブジェクトによって実装される必要があります)。
| ヘッダー
<locale> で定義 | |
| std::time_get<char> | 日付と時刻のナロー文字列表現を解析します。 |
| std::time_get<wchar_t> | 日付と時刻のワイド文字列表現を解析します。 |
さらに、標準ライブラリは、以下の型要件を満たすすべての特殊化を提供することも保証されています。
-
CharTはcharとwchar_tのいずれかであり、 -
InputItは LegacyInputIterator の要件を満たす必要があります。
[編集] ネストされた型
| 型 | 定義 |
char_type
|
CharT
|
iter_type
|
InputIt
|
[編集] データメンバ
| メンバ | 説明 |
std::locale::id id [static] |
ファセットの識別子 |
[編集] メンバ関数
新しいtime_getファセットを構築します。(public member function) | |
time_getファセットを破棄します。(protected メンバ関数) | |
do_date_orderを呼び出します。(publicメンバ関数) | |
do_get_timeを呼び出します。(publicメンバ関数) | |
do_get_dateを呼び出します。(publicメンバ関数) | |
do_get_weekdayを呼び出します。(publicメンバ関数) | |
do_get_monthnameを呼び出します。(publicメンバ関数) | |
do_get_yearを呼び出します。(publicメンバ関数) | |
| (C++11) |
do_getを呼び出します。(publicメンバ関数) |
[編集] protectedメンバ関数
| [virtual] |
日、月、年の優先順序を取得します。 (virtual protectedメンバ関数) |
| [virtual] |
入力ストリームから時、分、秒を抽出します。 (virtual protectedメンバ関数) |
| [virtual] |
入力ストリームから月、日、年を抽出します。 (virtual protectedメンバ関数) |
| [virtual] |
入力ストリームから曜日名を取得します。 (virtual protectedメンバ関数) |
| [virtual] |
入力ストリームから月名を取得します。 (virtual protectedメンバ関数) |
| [virtual] |
入力ストリームから年を取得します。 (virtual protectedメンバ関数) |
| [virtual] (C++11) |
指定されたフォーマットに従って、入力ストリームから日付/時刻コンポーネントを抽出します。 (virtual protectedメンバ関数) |
[編集] 例
注意: clangを選択すると出力が確認できます。libstdc++は%b指定子を正しく実装していません: バグ78714。
このコードを実行
#include <iomanip> #include <iostream> #include <locale> #include <sstream> int main() { std::tm t = {}; std::istringstream ss("2011-Februar-18 23:12:34"); ss.imbue(std::locale("de_DE.utf-8")); ss >> std::get_time(&t, "%Y-%b-%d %H:%M:%S"); if (ss.fail()) std::cout << "Parse failed\n"; else std::cout << std::put_time(&t, "%c") << '\n'; }
実行結果の例
Sun Feb 18 23:12:34 2011
[編集] 関連項目
| std::tm の内容を文字列シーケンスとして出力するために書式設定する (クラステンプレート) | |
| (C++11) |
指定されたフォーマットの日付/時刻の値を構文解析する (関数テンプレート) |