| .TH CTIME 3 |
| .SH NAME |
| ctime, localtime, gmtime, asctime, tm2sec, timezone \- convert date and time |
| .SH SYNOPSIS |
| .B #include <u.h> |
| .br |
| .B #include <libc.h> |
| .PP |
| .ta \w'\fLchar* 'u |
| .B |
| char* ctime(long clock) |
| .PP |
| .B |
| Tm* localtime(long clock) |
| .PP |
| .B |
| Tm* gmtime(long clock) |
| .PP |
| .B |
| char* asctime(Tm *tm) |
| .PP |
| .B |
| long tm2sec(Tm *tm) |
| .SH DESCRIPTION |
| .I Ctime |
| converts a time |
| .I clock |
| such as returned by |
| .IR time (3) |
| into |
| .SM ASCII |
| (sic) |
| and returns a pointer to a |
| 30-byte string |
| in the following form. |
| All the fields have constant width. |
| .PP |
| .B |
| Wed Aug 5 01:07:47 EST 1973\en\e0 |
| .PP |
| .I Localtime |
| and |
| .I gmtime |
| return pointers to structures containing |
| the broken-down time. |
| .I Localtime |
| corrects for the time zone and possible daylight savings time; |
| .I gmtime |
| converts directly to GMT. |
| .I Asctime |
| converts a broken-down time to |
| .SM ASCII |
| and returns a pointer |
| to a 30-byte string. |
| .IP |
| .EX |
| .ta 6n +\w'char 'u +\w'zone[4]; 'u |
| typedef |
| struct { |
| int sec; /* seconds (range 0..59) */ |
| int min; /* minutes (0..59) */ |
| int hour; /* hours (0..23) */ |
| int mday; /* day of the month (1..31) */ |
| int mon; /* month of the year (0..11) */ |
| int year; /* year A.D. \- 1900 */ |
| int wday; /* day of week (0..6, Sunday = 0) */ |
| int yday; /* day of year (0..365) */ |
| char zone[4]; /* time zone name */ |
| int tzoff; /* time zone delta from GMT */ |
| } Tm; |
| .EE |
| .PP |
| .I Tm2sec |
| converts a broken-down time to |
| seconds since the start of the epoch. |
| It ignores |
| .BR wday , |
| and assumes the local time zone |
| if |
| .B zone |
| is not |
| .BR GMT . |
| .SH SOURCE |
| .B \*9/src/lib9/date.c |
| .br |
| .B \*9/src/lib9/ctime.c |
| .SH "SEE ALSO" |
| .IR date (1), |
| .IR time (3) |
| .SH BUGS |
| The return values point to static data |
| whose content is overwritten by each call. |
| .PP |
| Daylight Savings Time is ``normal'' in the Southern hemisphere. |
| .PP |
| These routines are not equipped to handle non-\c |
| .SM ASCII |
| text, and are provincial anyway. |
| .PP |
| To avoid name conflicts with the underlying system, |
| .IR ctime , |
| .IR localtime , |
| .IR gmtime , |
| .IR asctime , |
| and |
| .I tm2sec |
| are preprocessor macros defined as |
| .IR p9ctime , |
| .IR p9localtime , |
| .IR p9gmtime , |
| .IR p9asctime , |
| and |
| .IR p9tm2sec ; |
| see |
| .IR intro (3). |