C言語 システム時刻をグリニッジ標準時(年月日)構造体に変換 - time.h - [ gmtime ]
2008.12.02 Tuesday | by LRESULT
システム時刻をグリニッジ標準時の年月日構造体に変換するには、gmtime()を使います。
書式 | struct tm* gmtime( const time_t *timer ) |
---|---|
機能 | システム時刻をグリニッジ標準時用の構造体に変換 |
引数 | const time_t *timer : time()で取得したシステム時刻 |
戻り値 | グリニッジ標準時の 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](-1された月数) |
int tm_year | 年(1900からの経過年数) |
int tm_wday | 曜日[0〜6](日:0 月:1 火:2 水:3 木:4 金:5 土:6) |
int tm_yday | 1月1日からの経過日数[0〜365] |
int tm_isdst | 夏時間の有無(0:なし 正の値:夏時間) |
現在のシステム時刻から、 グリニッジ標準時の年月日と時刻、曜日、経過日数などを表示してみます。 |
---|
#include <stdio.h> #include <time.h> int main(void) { time_t now; struct tm *ltm; time( &now ); ltm = gmtime( &now ); printf( "%5d : [年]¥n", ltm->tm_year + 1900 ); printf( "%5d : [月]¥n", ltm->tm_mon + 1 ); printf( "%5d : [日]¥n", ltm->tm_mday ); printf( "%5d : [時]¥n", ltm->tm_hour ); printf( "%5d : [分]¥n", ltm->tm_min ); printf( "%5d : [秒]¥n", ltm->tm_sec ); printf( "%5d : [曜日]¥n", ltm->tm_wday ); printf( "%5d : [経過日数]¥n", ltm->tm_yday ); printf( "%5d : [夏時間の有無]¥n", ltm->tm_isdst ); return 0; } |
2008 : [年] 12 : [月] 2 : [日] 12 : [時] 21 : [分] 38 : [秒] 2 : [曜日] 336 : [経過日数] 0 : [夏時間の有無] |
---|
と、こんな感じで表示されます。 年数は、+1900して、月数は+1する必要があります。 |