home *** CD-ROM | disk | FTP | other *** search
- >From: seismo!hao!asgb!benish!devine
- Date: Tue, 11 Feb 86 11:21:51 mst
-
- Hi, here is a letter that I sent to the IEEE mailing address for
- POSE proposals. It deals with timezones and Daylight Saving Time
- rules and how to incorporate them portably into a UNIX environment.
- Its advantages are: follows System III/V model; allows users and
- programs to override system timezone information; works for all
- present country TZ and DST rules; and flexibility.
-
- Bob Devine; 3133 Lake Park Way; Longmont, CO 80501; (303) 772-2410
- (seismo!hao!asgb!devine sdcrdcf!bmcg!asgb!devine)
-
- ---------------------------------------------------------------------
-
- Secretary, IEEE Standards Board
- Institute of Electrical and Electronics Engineers
- 345 East 17th Street
- New York, NY 10017
-
-
-
-
- This is a suggested resolution for the handling of world timezones
- and Daylight Saving Time for the P1003/Portable Operating System
- Environment document. Appendix A.3 asked for such a resolution.
-
-
- The major points of the proposal are:
-
-
- 1. There is a world-readable, superuser-modifiable file
- named "/etc/TIMEZONE" that describes the per-system
- timezone information and Daylight Saving Time rules.
-
-
- 2. TIMEZONE contains the following lines in Bourne shell
- syntax:
-
- TZ=ABC
- DST="dst1 dst2"
- export TZ DST
-
-
- 3. The TZ variable has 2 required parts (and an optional 3rd):
-
- A = standard abbreviation for the timezone as used by the
- local area
- A :== [A-Z][A-Z]*
- B = plus or minus difference in minutes from Universal Time,
- plus for those locations east of GMT, minus for west
- B :== [+-][0-9][0-9][0-9]
- C = standard abbreviation for the timezone as used by the
- local area when Daylight Saving Time is in effect. This
- part of TZ may be absent if DST is not used.
- C :== [A-Z][A-Z]*
-
- Example for my location in Boulder, Colorado, USA:
- TZ=MST-420MDT
-
-
- 4. The DST variable has 0 or 2 parts in the string. It has
- zero if no Daylight Saving Time is observed or 2, when DST
- starts and ends, for those places that do observe it. I
- have been unable to locate any place in the world that has
- 1, 3, or more changes per year to its local time. If DST
- is not null, the string means:
-
- dst1 = a string that describes when DST starts
- dst2 = a string that describes when DST stops
-
- Both have the syntax of "mmddDhhMM%CCcc". Translating it:
-
- mm = the month (January = 01)
- dd = the day of the month (01 to 31)
- D = the "search-forward" function number
- (0-7) usually 1 or 0
- 0 = use the day mm/dd without translation
- 1 = search forward to the first Sunday
- 2 = " Monday
- 3 = " Tuesday
- 4 = " Wednesday
- 5 = " Thursday
- 6 = " Friday
- 7 = " Saturday
- hh = the hour at which the change goes into effect
- (00-23) usually 01, 02 or 03
- MM = the minute at which the change goes into effect
- (00-59) usually 00
- % = a '+' or a '-' saying what direction to move
- CC = how many hours to move (00-23) usually 01 or 02
- cc = how many minutes to move (00-23) usually 00
-
- Example for my location in Boulder, Colorado, USA in 1986:
- DST="042410200+0100 102510200-0100"
- Alternately, if I already know the exact dates that DST
- starts and ends for that year, I can use:
- DST="042700200+0100 102600200-0100"
-
-
- 5. If the file is unreadable or missing, the default time
- zone to use is GMT and the default DST is null.
-
-
- 6. The library call "localtime()" is the only system code
- that need interpret the TZ and DST variables.
-
-
- 7. TZ and DST are put into the environment of each user
- when the user logs in. A user can change create their
- own TZ and DST values and replace the system maintained
- values in their environment.
-
- 8. Those utilities that strip off environment information
- can obtain TZ and DST values by reading "/etc/TIMEZONE".
-
-
-
- Bob Devine
- (303) 530-6635
- Burroughs Distributed Systems Group
- 6655 Lookout Road
- Boulder, CO. 80301
-
- UUCP: ihnp4!seismo!hao!asgb!devine OR sdcrdcf!bmcg!asgb!devine
-
- Volume-Number: Volume 5, Number 47
-
-