| .\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl> |
| .\" |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" |
| .TH TIMEGM 3 2001-12-26 "GNU" "Linux Programmer's Manual" |
| .SH NAME |
| timegm, timelocal \- inverses for gmtime and localtime |
| .SH SYNOPSIS |
| .nf |
| .B #include <time.h> |
| .sp |
| .BI "time_t timelocal (struct tm *" tm ); |
| .sp |
| .BI "time_t timegm (struct tm *" tm ); |
| .SH DESCRIPTION |
| The functions |
| .BR timelocal () |
| and |
| .BR timegm () |
| are the inverses to |
| .BR localtime (3) |
| and |
| .BR gmtime (3). |
| .SH NOTES |
| These functions are GNU extensions. |
| The |
| .BR timelocal () |
| function is equivalent to the POSIX standard function |
| .BR mktime (3). |
| There is no reason to ever use it. |
| .LP |
| For a portable version of |
| .BR timegm (), |
| set the |
| .B TZ |
| environment variable to UTC, call |
| .BR mktime () |
| and restore the value of |
| .BR TZ . |
| Something like |
| |
| .RS |
| .nf |
| #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; |
| } |
| .fi |
| .RE |
| .SH "SEE ALSO" |
| .BR gmtime (3), |
| .BR localtime (3), |
| .BR mktime (3), |
| .BR tzset (3) |