On 21 Sep 2013 13:54, Jerry C. Adams wrote:
<<SNIP>> what is the maximum (latest, whatever) time/date that
currently can be recognizing on the System i?

9999-12-31-23.59.59.999999 is the latest for any interface of which I am aware.

I recently came across this video
(http://www.numberphile.com/videos/unix_time.html) that is about
(obviously) Unix time. The year (2038) mentioned in the video
sounded vaguely familiar.

So, when does Time stop (on the System i)? Or loop (time travel?)?

FWiW: Searching the InfoCenter on the token 1928 is helpful to find information about the OS time-stamp because that is the year for its beginning-of-time.

FWiW: The year 2039 [very close to 2038] may be familiar to many on the IBM i due to the default 100-year-window interpretation of two-digit year formats; i.e. dates across the years 1940-2039 are understood and representable in a two-digit year format, with either an inference or implication for the missing [effective century] digits, as being either '19' or '20'.

The OS date\time is described indirectly, in _older release_ help text of the QDATE system value, as:
"System date. The format of the system date is specified in the system value QDATFMT. The system supports dates that range from August 24, 1928 to July 6, 2053. ..."

The _current release_ help text for QYEAR changed to describe the OS date\time support [what previously was documented under QDATE] in years: "the range of dates supported by the system (1928 to 2053)". Apparently, as limited by the implementation for the QCENTURY with the only two possible values documented in the help text as being _zero_ for "(the years from 1928 to 1999)" and _one_ for "(the years from 2000 to 2053)" with the explicit *Note* that "1900 to 1927 and 2054 to 2099 are not supported years for system time. Applications can, however, support year date ranges from 0001 to 9999." Apparently this is because "When QYEAR or the year in QDATE is changed:
* QCENTURY is set to 0 if QYEAR is 54 to 99
* QCENTURY is set to 1 if QYEAR is 00 to 27"
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/nls/rbagsqcenturyuse.htm
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/nls/rbagsqyearuse.htm

But then to confuse the issue, seemingly contradictory to the aforementioned capabilities of the "dates supported by the system"... According to the Set System Time (QWCSETTM) API, the "supported date range is from August 23, 1928, 12:03:06.314752 to May 10, 2071, 11:56:53.685240"
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/qwcsettm.htm

And to thoroughly confound someone investigating an answer to what is really supported for the OS date\time... According to the documentation for using iNav as the means to set the System Date [which presumably uses the above API], the "system supports dates that range from 24 August 1928 to 7 June 2062. If the Year (QYEAR) system value changes to a different century, the system automatically updates the Century (QCENTURY) system value." Yet if we are to believe the previously noted QCENTURY limits, years 2054-2062 are *not supported* and ¿possibly even can not be set?!?
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rzakz/rzakzqdate.htm

Despite the confusing references noted above, I recall the value of the /system date/ as implemented with the *DTS has the largest of those noted-as possible limits for the /system date/ support. I can not find specific documentation for the *DTS System TimeStamp 8-byte values, but the largest 2071 timestamp noted, is its upper limit. Converting the largest 8-byte *DTS value to a date\time with the Convert Date and Time Format (QWCCVTDT) API confirms that effect.
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/apis/qwccvtdt.htm

For example the Convert Date (CVTDAT) suggests that its "valid dates are in the range of August 24, 1928, to May 9, 2071" which is mostly consistent with the limits for the /System Timestamp/ value. Presumably the day 10-May-2071 is not supported, because that allows only for a partial day. Again, the system value QDATE and QYEAR [year] limitation, seems only due to a limit for the QCENTURY support.
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/cl/cvtdat.htm

Similarly, the CL Command object type *CMD date data type support for parameters per the special value *DATE has support for "dates with 2–digit years to be in the range of January 1, 1940, to December 31, 2039. Dates with 4–digit years must be in the range of August 24, 1928, to May 9, 2071" so again that seems consistent with the use of the *DTS and its effective upper limit [spanning a full day].
http://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/topic/rbam6/prtyp.htm

However, long before there is likely to be any issue for the OS itself [almost exclusively the ability to represent /today/ plus likely no more than up to a year into the future, typically for scheduling], I suspect the question is possibly more applicable and important to the applications, for what they support. The OS does provide access to the "Unix" time APIs, so any applications using those would seem to be more likely to be in trouble. While the OS mostly needs only to represent the /current/ dates [*nix or IBM i], the applications are more likely to need to express dates far into the future, thus pressing much closer to that 2038 boundary. Unless a component of the OS uses the *nix time [e.g. those implemented using applications in PASE compiled by AIX], they are unlikely to be impacted by those *nix time limitations.


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.