home *** CD-ROM | disk | FTP | other *** search
- 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
- #include <time.h>
-
- struct 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
-
-