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

履歴 編集

function template
<iomanip>

std::put_time(C++11)

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

処理系