Namespaces
Variants

std:: time_get

From cppreference.net
ヘッダーで定義 <locale>
template <

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

> class time_get ;

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

cpp/locale/time base cpp/locale/locale/facet std-time get-inheritance.svg

継承図

standard library によって提供されることが保証されていない std::time_get 特殊化(下記参照)の場合、そのメンバ関数(コンストラクタとデストラクタを除く)の動作は指定通りであることが保証されません。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の用語(Specializations、Nested types、Data members、Member functions、Protected member functions、std::time_base、Example、See also)は原文のまま保持しました - HTMLタグ、属性、構造は完全に保持しました - 番号や記号類は変更していません

特殊化

標準ライブラリは以下の特殊化を提供することが保証されています(これらは あらゆるロケールオブジェクトで実装が必須 とされています):

ヘッダーで定義 <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] facet の識別子

メンバー関数

新しい time_get ファセットを構築する
(public member function)
time_get ファセットを破棄する
(protected member function)
do_date_order を呼び出す
(public member function)
do_get_time を呼び出す
(public member function)
do_get_date を呼び出す
(public member function)
do_get_weekday を呼び出す
(public member function)
do_get_monthname を呼び出す
(public member function)
do_get_year を呼び出す
(public member function)
(C++11)
do_get を呼び出す
(public member function)

プロテクテッドメンバー関数

[virtual]
日、月、年の優先的な順序を取得する
(仮想保護メンバ関数)
[virtual]
入力ストリームから時、分、秒を抽出する
(仮想保護メンバ関数)
[virtual]
入力ストリームから月、日、年を抽出する
(仮想保護メンバ関数)
入力ストリームから曜日の名前を抽出する
(仮想保護メンバ関数)
入力ストリームから月の名前を抽出する
(仮想保護メンバ関数)
[virtual]
入力ストリームから年を抽出する
(仮想保護メンバ関数)
[virtual] (C++11)
指定されたフォーマットに従って入力ストリームから日付/時刻の構成要素を抽出する
(仮想保護メンバ関数)

std::time_base から継承 std:: time_base

ネストされた型

定義
dateorder 日付順序列挙型。値 no_order , dmy , mdy , ymd , および ydm を定義

注意: 出力を確認するにはclangを選択してください。libstdc++は%b指定子を正しく実装していません: bug 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)
指定されたフォーマットの日付/時刻値を解析する
(関数テンプレート)