CTIME(2)                                                 CTIME(2)

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

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

          char* ctime(long clock)

          Tm*   localtime(long clock)

          Tm*   gmtime(long clock)

          char* asctime(Tm *tm)

          /env/timezone

     DESCRIPTION
          Ctime converts a time clock such as returned by time(2) 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 contain-
          ing 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 */
               } Tm;

          When local time is first requested, the program consults the
          timezone environment variable to determine the time zone and
          converts accordingly.  (This variable is set at system boot
          time by init(8).) The timezone variable contains the normal
          time zone name and its difference from GMT in seconds fol-
          lowed by an alternate (daylight) time zone name and its

     Page 1                       Plan 9            (printed 12/30/24)

     CTIME(2)                                                 CTIME(2)

          difference followed by a newline.  The remainder is a list
          of pairs of times (seconds past the start of 1970, in the
          first time zone) when the alternate time zone applies.  For
          example:

               EST -18000 EDT -14400
                9943200 25664400 41392800 57718800 ...

          Greenwich Mean Time is represented by

               GMT 0

     SOURCE
          /sys/src/libc/9sys

     SEE ALSO
          date(1), time(2), init(8)

     BUGS
          The return values point to static data whose content is
          overwritten by each call.
          Daylight Savings Time is ``normal'' in the Southern hemi-
          sphere.
          These routines are not equipped to handle non-ASCII text,
          and are provincial anyway.

     Page 2                       Plan 9            (printed 12/30/24)