timegm

NAME

timegm, timelocal - inverses of gmtime and localtime

SYNOPSIS


#include <time.h>



time_t timelocal(struct tm *tm);



time_t timegm(struct tm *tm);



Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

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

DESCRIPTION

The functions timelocal() and timegm() are the inverses of localtime(3) and gmtime(3).

CONFORMING TO

These functions are non-standard GNU extensions that are also present on the BSDs. Avoid their use; see NOTES.

NOTES

The timelocal() function is equivalent to the POSIX standard function mktime(3). There is no reason to ever use it.

For a portable version of timegm(), set the TZ environment variable to UTC, call mktime(3) and restore the value of TZ. Something like


#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;

}

SEE ALSO

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