• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function template
    <iomanip>

    std::put_time

    template <class CharT>
    unspecified put_time(const struct tm* tmb, const CharT* fmt);
    

    概要

    日時書式で出力する。

    要件

    • tmbは、有効なtm型オブジェクトを指すポインタであること。
    • fmtは、有効な文字配列を指すポインタであること。

    効果

    入出力ストリームオブジェクトoutがあるものとし、以下の関数fのように振る舞う:

    template <class CharT, class Traits>
    void f(basic_ios<CharT, Traits>& out, const struct tm* tmb, const CharT* fmt)
    {
      using Iter    = ostreambuf_iterator<CharT, Traits>;
      using TimePut = time_put<CharT, Iter>;
      const TimePut& tp = use_facet<TimePut>(out.getloc());
      const Iter end = tp.put(Iter(out.rdbuf()), out, out.fill(), tmb,
                              fmt, fmt + Traits::length(fmt));
    
      if (end.failed())
        out.setstate(ios_base::badbit);
    }
    

    #include <iostream>
    #include <chrono>
    #include <ctime>
    #include <iomanip>
    
    using std::chrono::system_clock;
    
    int main() {
      // 現在日時を取得
      system_clock::time_point p = system_clock::now();
    
      // 出力
      std::time_t t = system_clock::to_time_t(p);
      const std::tm* lt = std::localtime(&t);
      std::cout << std::put_time(lt, "%c") << std::endl;
    }
    

    出力例

    Thu Dec 25 15:12:30 2014
    

    出力内容の日時は、実行時間に依存する。

    バージョン

    言語

    • C++11

    処理系