localtime()、localtime64() - 時間の変換と現地時間に応じた訂正

標準

標準/拡張機能 C/C++ 依存項目

ISO C
POSIX.1
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3
Language Environment®

両方  

形式

#include <time.h>

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

struct tm *localtime64(const time64_t *timeval);
コンパイル要件: localtime64() 関数を使用するには、long long データ型が必要です。long long を使用可能にする方法については、「z/OS XL C/C++ ランゲージ・リファレンス」を参照してください。

機能説明

localtime() 関数は、timeval で指定されるカレンダー時間を、現地時間で表され るブロークンダウン時間へ変換します。カレンダー時間は、通常、time() 関数を呼び出して得られます。

localtime64() 関数は、localtime() とまったく同じように動作します。ただし、2038 年 1 月 19 日の 03:14:07 UTC を超え、9999 年 12 月 31 日の 23:59:59 UTC を限度とするカレンダー時間を指す time64_t 値をブレークダウンする点を除きます。

使用上の注意

  1. この関数は時間帯情報に依存します。以下から時間帯情報が 提供されます。
    • POSIX(ON) と TZ が正確に定義さ れている場合は、TZ 環境変数。POSIX(OFF) と _TZ が正確に定義さ れている場合は、_TZ 環境変数。
    • POSIX(OFF) または TZ が定義されない場合には、現行ロケールの LC_TOD カテゴリー。
    時間帯外部変数 tznametimezone、および daylight を宣言することで、フィーチャー・テストは time.h 内で保護されます。
  2. 関数 ctime()、localtime()、および mktime() は、timezone_name 変数の設定を含むカスタマイズされたロケール情報 が使用可能でない限り、協定世界時 (UTC) を戻すことになりました。
  3. POSIX では、環境変数を使用して必要な情報を指定することが できます。
  4. POSIX 以外のアプリケーションでは、LC_TOD に時間帯および夏 時間情報を設定することにより、カスタマイズしたロケール情報を設定することができます。
  5. ロケールをカスタマイズすると、時間関数が任意の日付の夏時間を 正しく調整しながら、時刻と日付の両方を保存することができます。
  6. 関数 gmtime() および localtime() は、静的に割り振られた共通の 構造体を変換に使用することができます。これらの関数の 1 つを呼び出すごとに、以前の呼び出しの結果を変更します。
  7. time() 関数で戻されるカレンダー時間は、エポックである協定世界時 (UTC) 1970 年 1 月 1 日の 00:00:00 から始まります。
  8. localtime() 関数は、TZ または _TZ 環境変数もしくは現行ロケールの LC_TOD カテゴリーによって提供される時間帯情報を使用して、カレンダー時間 (つまりエポックからの経過秒数) を、現地時間として表されるブロークンダウン時間 に変換します。
    • TZ も _TZ も定義されない場合、時間帯情報について現行ロケールの値が照会されます。TZ も _TZ も定義されず、LC_TOD 時間帯情報が現行ロケールに存在しない場合、デフォルト値が現地時間に適用されます。POSIX プログラムでは単にデフォルトで協定世界時 (UTC) になりますが、非 POSIX プログラムでは、システム・クロックの設定に基づいて UTC からのオフセットを確立します。 現地時間を処理するための時間帯のカスタマイズについて詳しくは、「z/OS XL C/C++ プログラミング・ガイド」の『時間帯のカスタマイズ』を参照してください。

戻り値

timeval で指定されるカレンダー時間に相当する、現地時間で表されるブロークンダウン時間を含む、tm 構造体へのポイ ンターを戻します。カレンダー時間を変換できない場合、localtime() は NULL ポインター を戻します。tm 構造体のフィールドの説明については、time.h を参照してください。

エラー・コード
説明
EOVERFLOW
結果は表されません。

CELEBL07
⁄* CELEBL07                                      

   This example queries the system clock and displays the local time.           
                                                                                
 *⁄                                                                             
#include <time.h>                                                               
#include <stdio.h>                                                              
                                                                                
int main(void)                                                                  
{                                                                               
   struct tm *newtime;                                                          
   time_t ltime;                                                                
                                                                                
   time(&ltime);                                                                
   newtime = localtime(&ltime);                                                 
   printf("The date and time is %s", asctime(newtime));                         
}                                                                               

出力

この出力は、現地時間が 2006 年 6 月 16 日 午後 3 時の場合です。
The date and time is Fri Jun 16 15:00:00 2006

関連情報