summaryrefslogtreecommitdiffstats
path: root/man3/timegm.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/timegm.3')
-rw-r--r--man3/timegm.386
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)