<<On Fri, 21 Apr 2023 12:10:39 -0600, Brian Inglis via tz <tz@iana.org> said:
ISO 4031:1978 first defined the representation of local time differentials, commonly referred to as time zones, with -W/+E.
It appears POSIX +W/-E derives from SVID issue 1, published 1985 based on SVR2, possibly in (commercial) AT&T Unix 5 or earlier, supporting GMT and US time zones all positive.
Anyone have access to earlier references to Unix time zones or TZ in sources?
Historically DST transition rules were compiled in to the C library. In Seventh Edition Unix, the ftime(2) system call filled in a `struct timeb` as follows: struct timeb { time_t time; unsigned short millitm; short timezone; short dstflag; }; <https://github.com/dspinellis/unix-history-repo/blob/Research-V7-Snapshot-De...> In later systems, there were actual comments: struct timeb { time_t time; /* seconds since the Epoch */ unsigned short millitm; /* + milliseconds since the Epoch */ short timezone; /* minutes west of CUT */ short dstflag; /* DST == non-zero */ }; [on my FreeBSD 12.4 system, because source compatibility] So it's definitely been "west is positive" since V7. Sixth Edition does not appear to contain the ftime(2) system call, although its source code structure is a lot less polished (there were still `ken` and `dmr` directories) so I can't be entirely sure I've looked in all the right places. -GAWollman