Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (2) — Plan9 4th Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

date(1)

time(2)

init(8)

CTIME(2)

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)

longtm2sec(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 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 {
intsec;/∗ seconds (range 0..59) ∗/
intmin;/∗ minutes (0..59) ∗/
inthour;/∗ hours (0..23) ∗/
intmday;/∗ day of the month (1..31) ∗/
intmon;/∗ month of the year (0..11) ∗/
intyear;/∗ year A.D. − 1900 ∗/
intwday;/∗ day of week (0..6, Sunday = 0) ∗/
intyday;/∗ day of year (0..365) ∗/
charzone[4]; /∗ time zone name ∗/
inttzoff;/∗ 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. 

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 followed by an alternate (daylight) time zone name and its 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 hemisphere.
These routines are not equipped to handle non- ASCII text, and are provincial anyway. 

Plan 9  —  March 29, 2000

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026