ctime() — 時間から文字ストリングへの変換

フォーマット

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

言語レベル

ANSI

スレッド・セーフ

いいえ

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

ロケール依存

この関数の振る舞いは、現行ロケールの LC_TOD カテゴリーの影響を受ける可能性があります。詳細については、CCSID およびロケールの理解を参照してください。

説明

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

ctime() が作成するストリングの結果にはちょうど 26 文字が含まれ、以下の形式となっています。
   "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n"
以下に例を示します。
   Mon Jul 16 02:03:55 1987\n\0

ctime() 関数は 24 時間クロック形式を使用します。曜日は、SunMonTueWedThuFri、および Sat に省略されます。月の省略形は、JanFebMarAprMayJunJulAugSepOctNov、および Dec です。すべてのフィールドには固定幅があります。1 桁しかない日付は、ゼロがその前に置かれます。 改行文字 (\n) および NULL 文字 (\0) がストリングの最後の位置を占めます。

戻り値

ctime() 関数は、文字ストリングの結果を指すポインターを戻します。 関数が正常に実行されなかった場合、NULL を戻します。ctime() 関数の呼び出しは次の式と同じです。
   asctime(localtime(&anytime))
注: asctime() 関数と ctime() 関数、および他の時間関数は、戻りストリングの保持用に静的に割り振られた共通のバッファーを使用できます。 これらの関数の 1 つを呼び出すごとに、以前の呼び出しの結果が破棄される可能性があります。asctime_r()ctime_r()gmtime_r()、および localtime_r() 関数は、戻りストリングの保持用に静的に割り振られた共通のバッファーを使用しません。 再入可能性を希望する場合は、これらの関数を asctime()ctime()gmtime()、および localtime() の代わりに使用することができます。

次の例では、time() を使用してシステム・クロックをポーリングします。ポーリングの次に、現在の日時を示すメッセージを出力します。
#include <time.h>
#include <stdio.h>
 
int main(void)
{
   time_t ltime;

   time(&ltime); 

   printf("the time is %s", ctime(&ltime));
}