名前


timegm, timelocal - gmtime と localtime の逆関数

書式


#include <time.h>

time_t timelocal(struct tm *tm);

time_t timegm(struct tm *tm);

説明


timelocal() 関数と timegm() 関数は、それぞれ localtime(3) 関数と gmtime(3) 関数の逆関数である。

準拠


POSIX.1-2001 にはない。 BSD 系に存在する。

注意


これらの関数は GNU の拡張である。 timelocal() 関数は POSIX の標準関数 mktime(3) と同じものである。 ので、これを使う理由はないはずである。

timegm() を移植性があるようなかたちで実現するには、 TZ 環境変数を UTC に設定してから mktime(3) を呼んで、 TZ の値を取得すればよい。 例えば次のようになるだろう。

#include <time.h> #include <stdlib.h>

time_t my_timegm (struct tm *tm) { time_t ret; char *tz;

tz = getenv("TZ"); setenv("TZ", "", 1); tzset(); ret = mktime(tm); if (tz) setenv("TZ", tz, 1); else unsetenv("TZ"); tzset(); return ret; }

関連項目


gmtime(3), localtime(3), mktime(3), tzset(3)

openSUSE Logo

コンテンツ