gmtime

tm構造体への変換

【書式】
#include <time.h>
struct tm *gmtime(const time_t *timer);

【説明】
timer に格納されているデータを グリニッジ標準時間(世界標準時間)に変換し、tm構造体に格納します。
timerに格納されているデータは一般にtime関数を使って取得します。
似ていますが、localtime関数は日本時間を得ます。

【引数】
const time_t *timer : 暦時間の格納元。
               「const」についてはasctime関数を参照のこと。

【戻り値】
tm構造体を指すポインタ
構造体 tm はtime.h の中で宣言され、以下の情報を含みます
struct tm {
  int tm_sec;      /* 秒 [0-61] 最大2秒までのうるう秒を考慮 */
  int tm_min;      /* 分 [0-59] */
  int tm_hour;     /* 時 [0-23] */
  int tm_mday;     /* 日 [1-31] */
  int tm_mon;      /* 月 [0-11] 0から始まることに注意 */
  int tm_year;     /* 年 [1900からの経過年数] */
  int tm_wday;     /* 曜日 [0:日 1:月 ... 6:土] */
  int tm_yday;     /* 年内の通し日数 [0-365] 0から始まることに注意*/
  int tm_isdst;    /* 夏時間が無効であれば 0 */
};
【使用例】
#include <stdio.h>
#include <time.h>

int main(void)
{
   time_t timer;
   struct tm *jt;
   struct tm *gt;
   char *wday[] = {"日","月","火","水","木","金","土"};

   /* 現在時刻の取得 */
   time(&timer);

   /* 現在時刻をグリニッジ時間に変換 */
   gt = gmtime(&timer);
   printf("グリニッジ時間\n");
   printf("年  : %d\n",gt->tm_year+1900);
   printf("月  : %d\n",gt->tm_mon+1);
   printf("日  : %d\n",gt->tm_mday);
   printf("曜日: %s\n",wday[gt->tm_wday]);
   printf("時  : %d\n",gt->tm_hour);
   printf("分  : %d\n",gt->tm_min);
   printf("秒  : %d\n",gt->tm_sec);

   /* 現在時刻を日本時間に変換 */
   jt = localtime(&timer);
   printf("\n日本時間\n");
   printf("年  : %d\n",jt->tm_year+1900);
   printf("月  : %d\n",jt->tm_mon+1);
   printf("日  : %d\n",jt->tm_mday);
   printf("曜日: %s\n",wday[jt->tm_wday]);
   printf("時  : %d\n",jt->tm_hour);
   printf("分  : %d\n",jt->tm_min);
   printf("秒  : %d\n",jt->tm_sec);

   return 0;
}
【実行結果例】
グリニッジ時間
年 : 2001
月 : 5
日 : 20
曜日: 日
時 : 6
分 : 40
秒 : 48

日本時間
年 : 2001
月 : 5
日 : 20
曜日: 日
時 : 15
分 : 40
秒 : 48

(注)LSIC試食版でgmtimeを使っても日本時間しか得られ無い場合は、環境変数TZを
	set TZ=JST-9
   としてください。

戻る


banner
初心者のためのポイント学習C言語」
Copyright(c) 2000-2004 TOMOJI All Rights Reserved