- ctime[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp26[meta cpp]
namespace std {
tm* localtime_r(const time_t* timer, tm* buf);
}- time_t[link time_t.md]
- tm[link tm.md]
経過秒 (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);
}
}- std::localtime_r[color ff0000]
2026
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、この関数が
<ctime>に追加された
- C++26がC23を参照するようになり、この関数が