TIMEGM(3)

НАЗВАНИЕ
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;
    }

СМ. ТАКЖЕ
gmtime(3), localtime(3), mktime(3), tzset(3)