Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!im4u!ut-sally!std-unix From: std-unix@ut-sally.UUCP Newsgroups: mod.std.unix Subject: IEEE 1003.1 P.55 Message-ID: <6543@ut-sally.UUCP> Date: Wed, 10-Dec-86 11:18:35 EST Article-I.D.: ut-sally.6543 Posted: Wed Dec 10 11:18:35 1986 Date-Received: Sun, 14-Dec-86 02:14:51 EST References: <5836@ut-sally.UUCP> Organization: IEEE P1003 Portable Operating System for Computer Environments Committee Lines: 128 Approved: jsq@sally.utexas.edu [ This is a reposting of P.55, the P1003.1 Timezones proposal, due to recent interest coinciding with the meeting of P1003 going on this week in Atlantic City. -mod ] From: std-unix%ut-sally.UUCP@sally.utexas.edu (Moderator, John Quarterman) Date: 29 Sep 86 19:14:18 GMT There are several decisions needed regarding timezones and 1003.1: Which proposal should be accepted (P.55 or the one forthcoming from HP)? If P.55: Accept settz 4.5.3? Add 4.5.4 or incorporate third paragraph in 4.5.3? Details of Errors and References. Suggested Appendices: Olsen's implementation? List of names of timezones? The rest of this article is the text of Proposal 55. IEEE 1003.1 P.55: Time Zone Proposal based on work by Robert Elz and Arthur Olsen. Submitted by John S. Quarterman. Proposal number assigned 19 Sept. 1986. Add 4.5.3 and 4.5.4 to the standard and perhaps also document Arthur Olsen's implementation in an Appendix. Note that all of 4.5.4 except the last paragraph of 4.5.4.2, the last sentence of 4.5.4.3, and all of 4.5.4.4 and 4.5.4.5, is intended to track X3J11. I.e., the purpose of 4.5.4 is to constrain ctime() and localtime() further than X3J11, not to change what X3J11 says about them. % is used to indicate the section sign. Italics are implied in the normal format of the POSIX document. 4.5.3 Set Local Time Conversion Function: settz() 4.5.3.1 Synopsis int settz(p) char *p; 4.5.3.2 Description The settz() function determines the conversion from GMT of the local times returned by localtime() and ctime(). When called with a NULL pointer argument (p==0), settz shall select the appropriate local time conversion for the location of the host machine on which the call is executed. When called with a null string (p!=0 && *p=='\0'), settz shall select no conversion for localtime, making localtime() and gmtime() equivalent and ctime() and asctime(gmtime()) equivalent. When called with a non-null string (p!=0 && *p!='\0'), settz may set the conversion according to that string. The format of the string and the conversions it may specify are implementation specific. If an implementation accepts non-null string arguments to settz, the implementation should allow users to define their own conversions rather than restricting conversions to a standard set. If settz is called with a string for which the implementation can not find a conversion, settz shall return -1, but the conversion it sets is implementation defined and may be one of GMT, the executing machine's local time, or local time for the area where the implementation was performed. 4.5.3.3 Returns Upon successful completion, settz() returns 0, otherwise -1, and errno is set to indicate the error. 4.5.3.4 Errors If the function returns -1 the value stored in errno may be interpreted as follows: [EFAULT] The argument p points outside the process's allocated addresss space. 4.5.3.5 References time() %4.5.1, localtime(), ctime() %4.5.4. 4.5.4 Get Local Time Functions: localtime(), ctime() 4.5.4.1 Synopsis #includestruct tm *localtime(timer) char *ctime(timer) time_t *timer; 4.5.4.2 Description The localtime() function converts the calendar time pointed to by timer to local time in the form of a string. It is equivalent to asctime(localtime(timer)) The local time conversion is specified by a call on settz(). If localtime() or ctime() is called and settz() has not been called since the last exec(), the localtime() or ctime() call shall call settz(getenv("TZ")) before performing the local time conversion. The local time conversion should be accurate for all times from the base time of the time() function up to the time the call is made. Future times should be converted as accurately as possible with available political information. Daylight savings time should be taken into account in both cases. 4.5.4.3 Returns The localtime() function returns a pointer to that object. The ctime() function returns the pointer returned by the asctime() function with that broken-down time as argument. On unsuccessful completion of either function, a NULL pointer shall be returned and errno is set to indicate the error. 4.5.4.4 Errors If either function returns a NULL pointer the value stored in errno may be interpreted as follows: [EFAULT] The argument points outside the process's allocated address space. 4.5.4.5 References time() %4.5.1, settz() %4.5.3. Volume-Number: Volume 7, Number 8 Volume-Number: Volume 8, Number 64