diff options
Diffstat (limited to 'man3/timegm.3')
-rw-r--r-- | man3/timegm.3 | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/man3/timegm.3 b/man3/timegm.3 new file mode 100644 index 000000000..f5fd3eb62 --- /dev/null +++ b/man3/timegm.3 @@ -0,0 +1,86 @@ +.\" 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 +.B timelocal() +and +.B timegm() +are the inverses to +.BR localtime (3) +and +.BR gmtime (3). +.SH NOTES +These functions are GNU extensions. +The +.B 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 +.B 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) |