C言語入門講座。関数、サンプル集を参考にして、 C言語をマスターしよう。初心者から上級者まで。

日時を英語表現の文字列に変換する

2012.08.10

asctime関数とctime関数は、日時情報及び、紀元(1970年1月1日00:00:00 UTC)からの経過秒数を英語表現の文字列に変換します。なお、日時情報はgmtime関数とlocaltime関数で取得することができますし、経過秒数はtime関数で取得することができます。

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

*tmは日時情報が格納されているtm構造体を指定します。
*timepは紀元からの経過秒数を指定します。

戻り値として、英語表現の日時の文字列を返します。エラーの場合は、NULLを返します。

ctime関数は自動的にローカル時間への変換を行いますので、time関数で取得した経過秒数は、そのまま引数に指定してかまいません。

英語表現の日時の形式は、両方の関数で同じです。なお、文字列の最後に改行文字が入っていますので注意してください。

プログラム 例

#include <stdio.h>
#include <time.h>

int main()
{
  time_t      timep;
  struct tm   *time_inf;

  /* 紀元からの経過秒数を得る */
  timep = time(NULL);
  /* ローカル標準時へ変換 */
  time_inf = localtime(&timep);

  /* 表示 */
  printf('asctime関数:%s', asctime(time_inf));
  printf('ctime関数:%s', ctime(&timep));

  return 0;
}

例の実行結果

$ ./asctime.exe
asctime関数:Thu Jul 24 14:42:09 2008
ctime関数:Thu Jul 24 14:42:09 2008
$

関連記事