Inverses of gmtime and localtime
#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
The functions timelocal() and timegm() are the inverses of localtime(3) and gmtime(3).
These functions are nonstandard GNU extensions that are also present on the BSDs. Avoid their use; see 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; }
This page is part of release 3.74 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/.