CTIME(3)

NAME
ctime, localtime, gmtime, asctime, tm2sec, timezone - convert date and time

SYNOPSIS
#include <u.h>
#include <libc.h>

char*    ctime(long clock)

Tm*    localtime(long clock)

Tm*    gmtime(long clock)

char*    asctime(Tm *tm)

long    tm2sec(Tm *tm)

DESCRIPTION
Ctime converts a time clock such as returned by time(3) into ASCII (sic) and returns a pointer to a 30-byte string in the following form. All the fields have constant width.

    Wed Aug 5 01:07:47 EST 1973\n\0

Localtime and gmtime return pointers to structures containing the broken-down time. Localtime corrects for the time zone and possible daylight savings time; gmtime converts directly to GMT. Asctime converts a broken-down time to ASCII and returns a pointer to a 30-byte string.

        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;

Tm2sec converts a broken-down time to seconds since the start of the epoch. It ignores wday, and assumes the local time zone if zone is not GMT.

SOURCE
/src/lib9/date.c
/src/lib9/ctime.c

SEE ALSO
date(1), time(3)

BUGS
The return values point to static data whose content is overwritten by each call.

Daylight Savings Time is ``normal'' in the Southern hemisphere.

These routines are not equipped to handle non-ASCII text, and are provincial anyway.

To avoid name conflicts with the underlying system, ctime, localtime, gmtime, asctime, and tm2sec are preprocessor macros defined as p9ctime, p9localtime, p9gmtime, p9asctime, and p9tm2sec; see intro(3).