|
|
1.1 root 1: .\" Copyright (c) 1980 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)ctime.3 6.9 (Berkeley) 9/30/87
6: .\"
7: .TH CTIME 3 "September 30, 1987"
8: .UC 4
9: .SH NAME
10: ctime, localtime, gmtime, asctime, timezone, tzset \- convert date and time to ASCII
11: .SH SYNOPSIS
12: .nf
13: .B void tzset()
14: .PP
15: .B char *ctime(clock)
16: .B time_t *clock;
17: .PP
18: .B #include <time.h>
19: .PP
20: .B char *asctime(tm)
21: .B struct tm *tm;
22: .PP
23: .B struct tm *localtime(clock)
24: .B time_t *clock;
25: .PP
26: .B struct tm *gmtime(clock)
27: .B time_t *clock;
28: .PP
29: .B char *timezone(zone, dst)
30: .fi
31: .fi
32: .SH DESCRIPTION
33: \fITzset\fP uses the value of the environment variable \fBTZ\fP to
34: set up the time conversion information used by \fIlocaltime\fP.
35: .PP
36: If \fBTZ\fP does not appear in the environment, the \fBTZDEFAULT\fP
37: file (as defined in \fItzfile.h\fP) is used by \fIlocaltime\fP. If
38: this file fails for any reason, the GMT offset as provided by the
39: kernel is used. In this case, DST is ignored, resulting in the time
40: being incorrect by some amount if DST is currently in effect. If
41: this fails for any reason, GMT is used.
42: .PP
43: If \fBTZ\fP appears in the environment but its value is a null string,
44: Greenwich Mean Time is used; if \fBTZ\fP appears and begins with a
45: slash, it is used as the absolute pathname of the \fItzfile\fP(5)-format
46: file from which to read the time conversion information; if \fBTZ\fP
47: appears and begins with a character other than a slash, it's used as
48: a pathname relative to the system time conversion information directory,
49: defined as \fBTZDIR\fP in the include file \fItzfile.h\fP. If this file
50: fails for any reason, the GMT offset as provided by the kernel is
51: used, as described above. If this fails for any reason, GMT is used.
52: .PP
53: Programs that always wish to use local wall clock time should explicitly
54: remove the environmental variable \fBTZ\fP with \fIunsetenv\fP(3).
55: .PP
56: \fICtime\fP converts a long integer, pointed to by \fIclock\fP,
57: such as returned by \fItime\fP(3), into ASCII and returns a pointer
58: to a 26-character string in the following form. All the fields
59: have constant width.
60: .PP
61: Sun Sep 16 01:03:52 1973\\n\\0
62: .PP
63: .I Localtime
64: and
65: .I gmtime
66: return pointers to structures containing
67: the broken-down time.
68: .I Localtime
69: corrects for the time zone and possible daylight savings time;
70: .I gmtime
71: converts directly to GMT, which is the time UNIX uses.
72: .I Asctime
73: converts a broken-down time to ASCII and returns a pointer
74: to a 26-character string.
75: .PP
76: The structure declaration from the include file is:
77: .PP
78: .RS
79: .nf
80: .nr .0 .8i+\w'int tm_isdst'u
81: .ta .5i \n(.0u \n(.0u+\w'/* 0-000'u+1n
82: struct tm {
83: int tm_sec; /* 0-59 seconds */
84: int tm_min; /* 0-59 minutes */
85: int tm_hour; /* 0-23 hour */
86: int tm_mday; /* 1-31 day of month */
87: int tm_mon; /* 0-11 month */
88: int tm_year; /* 0- year \- 1900 */
89: int tm_wday; /* 0-6 day of week (Sunday = 0) */
90: int tm_yday; /* 0-365 day of year */
91: int tm_isdst; /* flag: daylight savings time in effect */
92: char **tm_zone; /* abbreviation of timezone name */
93: long tm_gmtoff; /* offset from GMT in seconds */
94: };
95: .fi
96: .RE
97: .PP
98: \fITm_isdst\fP is non-zero if a time zone adjustment such as Daylight
99: Savings time is in effect.
100: .PP
101: \fITm_gmtoff\fP is the offset (in seconds) of the time represented
102: from GMT, with positive values indicating East of Greenwich.
103: .PP
104: \fITimezone\fP remains for compatibility reasons only; it's impossible to
105: reliably map timezone's arguments (\fIzone\fP, a "minutes west of GMT" value
106: and \fIdst\fP, a "daylight saving time in effect" flag) to a time zone
107: abbreviation.
108: .PP
109: If the environmental string \fITZNAME\fP exists, \fItimezone\fP returns
110: its value, unless it consists of two comma separated strings, in which
111: case the second string is returned if \fIdst\fP is non-zero, else
112: the first string. If \fITZNAME\fP doesn't exist, \fIzone\fP is checked
113: for equality with a built-in table of values, in which case \fItimezone\fP
114: returns the time zone or daylight time zone abbreviation associated with
115: that value. If the requested \fIzone\fP does not appear in the table, the
116: difference from GMT is returned; e.g. in Afghanistan,
117: \fItimezone(-(60*4+30), 0)\fP is appropriate because it is 4:30 ahead of
118: GMT, and the string \fBGMT+4:30\fP is returned. Programs that in the
119: past used the \fItimezone\fP function should return the zone name as
120: set by \fIlocaltime\fP to assure correctness.
121: .SH FILES
122: .ta \w'/etc/zoneinfo/localtime\0\0'u
123: /etc/zoneinfo time zone information directory
124: .br
125: /etc/zoneinfo/localtime local time zone file
126: .SH SEE ALSO
127: gettimeofday(2), getenv(3), time(3), tzfile(5), environ(7)
128: .SH NOTE
129: The return values point to static data whose content is overwritten by
130: each call. The \fBtm_zone\fP field of a returned \fBstruct tm\fP
131: points to a static array of characters, which will also be overwritten
132: at the next call (and by calls to \fItzset\fP).
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.