timegm, timelocal — inverses of gmtime and localtime
#include <time.h>
time_t timelocal( |
struct tm * | tm) ; |
time_t timegm( |
struct tm * | tm) ; |
These functions are non-standard 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"); 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)
|