Manpages

名 前

timegm, timelocal − gmtime と localtime の 逆 関 数

書 式

#include <time.h>

time_t timelocal(struct tm *tm);

time_t timegm(struct tm *tm);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

timelocal(), timegm(): _BSD_SOURCE || _SVID_SOURCE

説 明

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

準 拠

こ れ ら の 関 数 は 非 標 準 で GNU の 拡 張 で あ る 。 BSD 系 に も 存 在 す る 。 こ れ ら の 使 用 は 避 け る こ と 。 「 注 意 」 参 照 。

注 意

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");
if (tz)
tz = strdup(tz);
setenv("TZ", "", 1);
tzset();
ret = mktime(tm);
if (tz) {
setenv("TZ", tz, 1);
free(tz); }
else
unsetenv("TZ");
tzset();
return ret; }

関 連 項 目

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

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。