localtime() — 時間の変換

フォーマット

#include <time.h>
struct tm *localtime(const time_t *timeval);

言語レベル

ANSI

スレッド・セーフ

いいえ

代わりに localtime_r() を使用します。

ロケール依存

この関数の振る舞いは、現行ロケールの LC_TOD カテゴリーの影響を受ける可能性があります。

説明

localtime() 関数は、秒単位で、time 値を tm 構造体に変換します。

localtime() 関数は、timeval を協定世界時 (UTC) として仮定し、ジョブ・ロケール時間に変換します。 この変換を行うため、localtime() はローカル時間帯および夏時間 (DST) の現行ロケール設定をチェックします。 これらの値が現行ロケールで未設定の場合、localtime() はローカル時間帯および夏時間 (DST) の設定を現行ジョブから取得します。 変換が行われると、時間は型 tm の構造体内に戻されます。 DST がロケールで設定済みでも、時間帯情報が未設定の場合は、ロケール内の DST 情報は無視されます。

time 値は、通常、time() 関数を呼び出して取得します。
注:
  1. gmtime() および localtime() 関数は、静的に割り振られた共通のバッファーを変換に使用します。 これらの関数の 1 つを呼び出すごとに、以前の呼び出しの結果が破棄される可能性があります。ctime_r()gmtime_r()、および localtime_r() 関数は、静的に割り振られた共通のバッファーを使用しません。 これらの関数は、再入可能性が望ましい場合に、asctime()ctime()gmtime() および localtime() 関数の代わりに使用可能です。
  2. カレンダー時間とは、エポックである UTC (1970 年 1 月 1 日 00:00:00) から数えた秒数です。

戻り値

localtime() 関数は、構造体へのポインターを戻します。 エラーの戻り値はありません。

この例では、システム・クロックを照会して、現地時間を表示します。
#include <time.h>
#include <stdio.h>
 
int main(void)
{
   struct tm *newtime;
   time_t ltime;
 
   ltime = time(&ltime);
   newtime = localtime(&ltime);
   printf("The date and time is %s", asctime(newtime));}
 
/**************  If the local time is 3 p.m. February 15, 2008, **********
*************************  the output should be:  *********************
 
The date and time is Fri Feb 15 15:00:00 2008
*/