[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    TIMEGM(3) manual page Table of Contents

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 nonstandard 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");
    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;
}

See Also

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

Colophon

This page is part of release 3.78 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.


Table of Contents