Expanded 64-bit time values

As part of the POSIX standards for 64-bit computing, which is known as LP64 (64-bit Longs and Pointers), the time_t data type for file times is expanded to 64 bits in z/OS® V1R6. The current signed 31-bit data type will go negative in 2038. Because the 390 system clock will wrap in 2042, there is an issue for PFSes that store time in STCK format.

The z/Architecture® has a 128-bit STCKE that adds one byte to the left of the current 8-byte format; that is, it has five bytes of seconds, and goes to about the year 36765. An 8-byte POSIX time value goes far beyond that. A 9-byte time field, or the left 8 bytes of the new STCKE, would hold any real times, and an 8-byte POSIX format field would hold anything that could be set by a user.

z/OS UNIX allows existing external time fields that cannot handle the next epoch to wrap. That is, the initial value for the next epoch is zero and the values in those fields increase positively with time. This starts in the year 2038 for 4-byte signed POSIX times and in the year 2042 for unsigned 8-byte STCK times. Many of these fields will have a separate but corresponding time that will not wrap for these dates; for example, an 8-byte POSIX time or an 8 or 16-byte extended STCKE time.