最終更新日時:
が更新

履歴 編集

function
<ctime>

std::localtime

namespace std {
  tm* localtime(const time_t* timer);
}

概要

経過秒 (time_t) を、ローカル時間で表現されたカレンダー時間 (tm構造体) に変換する。

UTCに変換するgmtimeに対し、この関数は処理系のタイムゾーン設定に基づいたローカル時間に変換する。

効果

timerが指すカレンダー時間を、ローカル時間で表現された要素別の時間に変換する。

戻り値

変換した要素別の時間を指すポインタを返す。

指定された時間をローカル時間に変換できない場合、ヌルポインタを返す。

備考

戻り値は静的に確保された領域を指すため、localtimegmtimeの呼び出しのたびに上書きされる可能性がある。スレッドセーフに変換するには、C++26で追加されたlocaltime_rを使用する。

#include <ctime>
#include <iostream>

int main()
{
  // 現在日時を、ローカル時間のカレンダー時間に変換する
  std::time_t t = std::time(nullptr);
  std::tm* lt = std::localtime(&t);

  std::cout << (lt->tm_year + 1900) << "年"
            << (lt->tm_mon + 1) << "月"
            << lt->tm_mday << "日" << std::endl;
}

出力例

2026年8月19日

バージョン

言語

  • C++03

関連項目

  • localtime_r: 経過秒からローカル時間のカレンダー時間を生成する (バッファ指定)
  • gmtime: 経過秒からUTCのカレンダー時間を生成する
  • mktime: カレンダー時間から経過秒を生成する