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

フォーマット

#include <time.h>
char *asctime(const struct tm *time);

言語レベル

ANSI

スレッド・セーフ

いいえ

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

説明

asctime() 関数は、time により指される構造体として格納された時間を、文字ストリングに変換します。time 値は、gmtime() 関数、gmtime64() 関数、localtime() 関数、または localtime64() 関数の呼び出しから取得できます。

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

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

日時の関数は、1970 年 1 月 1 日 00:00:00 世界時から始まります。

戻り値

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

次の例はシステム・クロックをポーリングし、現在時刻を示すメッセージを出力します。
#include <time.h>
#include <stdio.h>
 
int main(void)
{
    struct tm *newtime;
    time_t ltime;
 
/* Get the time in seconds */
    time(&ltime);
/* Convert it to the structure tm */
    newtime = localtime(&ltime);
 
        /* Print the local time as a string */
    printf("The current date and time are %s",
             asctime(newtime));
}
 
/****************  Output should be similar to:  ******************
The current date and time are Fri Sep 16 13:29:51 1994
*/