TIMEGM
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
Return to Main 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 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)
 
COLOPHON
This page is part of release 3.22 of the Linux
man-pages
project.
A description of the project,
and information about reporting bugs,
can be found at
http://www.kernel.org/doc/man-pages/.