kazmax - Linux で自宅サーバー

timegm - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 注意
  5. 準拠
  6. 関連項目

名前

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) 関数の逆関数である。

注意

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

timegm()を移植性があるようなかたちで実現するには、 TZ環境変数を UTC に設定してから mktime()を呼んで、 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; }

準拠

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

関連項目

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