名前空間
変種
操作

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_type CharT
iter_type InputIt

[編集] メンバ関数

新しい 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 から継承

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

[編集]

#include <iostream>
#include <sstream>
#include <string>
#include <locale>
#include <ctime>
#include <iomanip>
int main()
{
    std::wstring input = L"2011-Februar-18 23:12:34";
    std::tm t;
    std::wistringstream ss(input);
    ss.imbue(std::locale("de_DE"));
    ss >> std::get_time(&t, L"%Y-%b-%d %H:%M:%S"); // uses std::time_get<wchar_t>
    std::cout << std::asctime(&t);
}

出力:

Sun Feb 18 23:12:34 2011

[編集] 関連項目

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