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
#include
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
としてください。
[Quote]:http://www9.plala.or.jp/sgwr-t/lib/gmtime.html