名前空間
変種
操作

std::time_get

提供: cppreference.com
< cpp‎ | locale
 
 
 
 
ヘッダ <locale> で定義
template<

    class CharT,
    class InputIt =std::istreambuf_iterator<CharT>

>class time_get;

クラステンプレート std::time_get は日付と時間の解析ルールをカプセル化します。 入出力マニピュレータ std::get_time はテキスト入力を std::tm オブジェクトに変換するために入出力ストリームのロケールの std::time_get ファセットを使用します。

cpp/locale/time basecpp/locale/locale/facetstd-time get-inheritance.svg
画像の詳細

継承図

目次

[編集]型の要件

-
InputItLegacyInputIterator の要件を満たさなければなりません。

[編集]特殊化

2つのスタンドアロンな (ロケール非依存な) 完全特殊化と2つの部分特殊化が標準ライブラリによって提供されます。

ヘッダ <locale> で定義
std::time_get<char> 日付と時間のナロー文字列表現を解析します
std::time_get<wchar_t> 日付と時間のワイド文字列表現を解析します
std::time_get<char, InputIt> カスタム入力イテレータを用いて日付と時間のナロー文字列表現を解析します
std::time_get<wchar_t, InputIt> カスタム入力イテレータを用いて日付と時間のワイド文字列表現を解析します

さらに、 C++ のプログラム中で構築されたすべてのロケールオブジェクトは、これらの特殊化の独自の (ロケール固有の) バージョンを実装します。

[編集]メンバ型

メンバ型 定義
char_typeCharT
iter_typeInputIt

[編集]メンバ関数

新しい time_get ファセットを構築します
(パブリックメンバ関数)
time_get ファセットを破棄します
(プロテクテッドメンバ関数)
do_date_order を呼びます
(パブリックメンバ関数)[edit]
do_get_time を呼びます
(パブリックメンバ関数)[edit]
do_get_date を呼びます
(パブリックメンバ関数)[edit]
do_get_weekday を呼びます
(パブリックメンバ関数)[edit]
do_get_monthname を呼びます
(パブリックメンバ関数)[edit]
do_get_year を呼びます
(パブリックメンバ関数)[edit]
(C++11)
do_get を呼びます
(パブリックメンバ関数)[edit]

[編集]メンバオブジェクト

static std::locale::id id
ロケールの id
(パブリックメンバオブジェクト)

[編集]プロテクテッドメンバ関数

日、月、年の推奨順序を取得します
(仮想プロテクテッドメンバ関数)[edit]
[仮想]
入力ストリームから時、分、秒を抽出します
(仮想プロテクテッドメンバ関数)[edit]
[仮想]
入力ストリームから月、日、年を抽出します
(仮想プロテクテッドメンバ関数)[edit]
入力ストリームから曜日の名前を抽出します
(仮想プロテクテッドメンバ関数)[edit]
入力ストリームから月の名前を抽出します
(仮想プロテクテッドメンバ関数)[edit]
[仮想]
入力ストリームから年を抽出します
(仮想プロテクテッドメンバ関数)[edit]
[仮想](C++11)
指定された書式に従って、入力ストリームから日付時刻のコンポーネントを抽出します
(仮想プロテクテッドメンバ関数)[edit]

std::time_base から継承

定義
dateorderno_orderdmymdyymd および ydm を定義する、日付の順序の列挙型

[編集]

注: 出力を観察するには clang を使用してください。 libstdc++ は %b 指定子を正しく実装していません (bug 78714)。

#include <iostream>#include <sstream>#include <locale>#include <iomanip>   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

[編集]関連項目

文字シーケンスとして出力するために structstd::tm の内容をフォーマットします
(クラステンプレート)[edit]
(C++11)
指定された書式の日付/時刻の値をパースします
(関数テンプレート)[edit]
close