ctime()、ctime64() - 文字ストリングへの時間の変換

標準

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

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

両方  

形式

#include <time.h>

char *ctime(const time_t *timer);
#define _LARGE_TIME_API
#include <time.h>

char  *ctime64 (const time64_t *timer);

機能説明

timer が指すカレンダー時間から、文字ストリングの形式の現地時間に変換します。timer の値は、通常、time() 関数を呼び出して取得します。

ctime() 関数は、関数呼び出し asctime(localtime(timer)) と 等価です。

関数 ctime64() は、ctime() とまったく同じように動作しますが、2038 年 1 月 19 日の 03:14:07 UTC を超え 9999 年 12 月 31 日の 23:59:59 UTC までを限度とするカレンダー時間を指す、time64_t 値を変換できます。

戻り値

正常に実行された場合、ctime() は、日時ストリングへのポインターを戻します。ctime() が戻すストリングにはちょうど 26 文字が含まれ、その形式は次 のとおりです。
   "%.3s %.3s%3d %.2d:%.2d:%.2d %d¥n"

例えば、Mon Jul 16 02:03:55 1987¥n¥0

エラーが起こった場合、ctime() は値を戻しません。

注 :
  1. この関数は時間帯情報に依存します。以下から時間帯情報が 提供されます。
    • POSIX(ON) と TZ が正確に定義さ れている場合は、TZ 環境変数。POSIX(OFF) と _TZ が正確に定義さ れている場合は、_TZ 環境変数。
    • POSIX(OFF) または TZ が定義されない場合には、現行ロケールの LC_TOD カテゴリー。
    時間帯外部変数 tznametimezone、および daylight を宣言することで、フィーチャー・テストは time.h 内で保護されます。
  2. time() 関数を呼び出すと戻されるカレンダー時間は、エポック、つまり 協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から始まっています。
  3. ctime() 関数は、24 時間時計形式を使用します。
  4. 曜日は、SunMonTueWedThuFri、および Sat に省略されます。
  5. 月は、JanFebMarAprMayJunJulAugSepOctNov、および Dec に省略されます。
  6. すべてのフィールドは幅が一定です。
  7. 1 桁の日付には 1 個のスペースが埋め込まれます。 1 桁の時刻値には 1 個のゼロが埋め込まれます。
  8. 改行文字 (¥n) および NULL 文字 (¥0) がストリングの最後の 2 つの 位置を占めます。
  9. asctime()、ctime()、およびその他の時間関数は、戻りストリング を保持するために、静的に割り振られた共通のバッファーを使用できます。これらの関数の 1 つへのそれぞれの呼び出しは、直前の 呼び出し結果を破棄することがあります。

TZ も _TZ も定義されない場合、時間帯情報について現行ロケールの値が照会されます。TZ も _TZ も定義されず、LC_TOD 時間帯情報が現行ロケールに存在しない場合、デフォルト値が現地時間に適用されます。POSIX プログラムでは単にデフォルトで協定世界時 (UTC) になりますが、非 POSIX プログラムでは、システム・クロックの設定に基づいて UTC からのオフセットを確立します。

現地時間を処理するための時間帯のカスタマイズについて詳しくは、「z/OS XL C/C++ プログラミング・ガイド」の『時間帯のカスタマイズ』を参照してください。

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

CELEBC33
⁄* CELEBC33                                      

   This example polls the system clock by using the library                     
   function &ttime..                                                            
   It then prints a message giving the current date and time.                   
                                                                                
 *⁄                                                                             
#include <time.h>                                                               
#include <stdio.h>                                                              
                                                                                
int main(void)                                                                  
{                                                                               
   time_t ltime;                                                                
                                                                                
   time(&ltime);                                                                
   printf("the time is %s", ctime(&ltime));                                     
}                                                                               
出力:
the time is Fri Jun 16 16:03:38 2006

関連情報