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

履歴 編集

function
<ctime>

std::localtime_r(C++26)

namespace std {
  tm* localtime_r(const time_t* timer, tm* buf);
}

概要

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

localtimeと異なり、結果を利用者が用意したバッファbufに格納するため、スレッドセーフである。

C23で<time.h>に追加された関数であり、C++26で<ctime>に取り込まれた。

効果

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

戻り値

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

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

#include <ctime>
#include <print>

int main()
{
  std::time_t t = std::time(nullptr);

  std::tm result;
  if (std::localtime_r(&t, &result) != nullptr) {
    std::println("{}", result.tm_year + 1900);
  }
}

出力例

2026

バージョン

言語

  • C++26

処理系

関連項目

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

参照