localtime_s | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


localtime_s関数

概要 カレンダー時間から、ローカル時間を得る。
ヘッダ time.h
形式 struct tm* localtime_s(const time_t* restrict timer, struct tm* restrict result);
引数 timer カレンダー時間が格納された time_t型の値を指すポインタ。ヌルポインタであってはならない。
result ローカル時間を受け取る tm構造体を指すポインタ。ヌルポインタであってはならない。
戻り値 成功したときは仮引数result を返す。失敗したときはヌルポインタ。
詳細

カレンダー時間をローカル時間に変換する。


localtime関数の安全性を高めた関数である。localtime関数と違い、結果を静的なオブジェクトに生成してそのポインタを返すのではなく、呼び出し元が用意したバッファに受け取るかたちになっているため、ほかの関数との競合でデータが破損することがなくなっている。実行時に検出できる問題があれば実行時制約違反となる。


この関数は、__STDC_LIB_EXT1__ 事前定義マクロが定義されている処理系📘で使用できる。このマクロが定義されていない場合に使用できるかどうかは処理系定義である。また、この関数を使用するのなら、<time.h> をインクルードする前に、__STDC_WANT_LIB_EXT1__ という名前のマクロを、置換結果 1 になるように定義する。このマクロが 0 に置換されると、この関数は宣言・定義されない[2]
注意 Visual Studio の localtime_s関数は独自のものであるため、引数の順序や戻り値の型も異なっている[1]
使用例
#define __STDC_WANT_LIB_EXT1__ 1
#include <stdio.h>
#include <time.h>

int main(void)
{
    time_t t = time(NULL);

    struct tm lt;
    localtime_s(&t, &lt);  // Visual Studio では引数の順序が逆

    char buf[26];
    asctime_s(buf, sizeof(buf), &lt);
    printf("%s", buf);
}

実行結果:

Sat Dec  7 17:03:06 2024
関連

localtime関数はこの関数の元になった古い関数である。

カレンダー時間から、協定世界時(UTC) を得るには gmtime関数を使う。
解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る