Stephen Colebourne wrote:
Notably, I don't believe that the binary data provides the rules themselves which allow future DST to be calculated.
The last item in a version-2 tzfile is a POSIX (System V style) TZ string to be used for the indefinite future of the zone. My tzfile parser (the Perl module) makes use of this. There are a small number of zones for which such a TZ string can't be formulated, and in those cases zic tries to provide 400 years of explicit future transitions, so if the zone's rules are based on the Gregorian calendar you can repeat that 400 years indefinitely. There are an even smaller number of zones for which neither of these strategies work, but in those cases the zic source can't represent the rule either. (Incidentally, I've posted a patch more than one that would make the 400 year hack more robust, and it seems to have got lost each time. It's sitting on a branch in my public git repo.) The extra information not in the tzfiles that you can get from the zic source is limited to things like whether a transition was the result of a long-term rule as opposed to a one-off decision, and what the rule was. I don't think this is really meaningful information for the purposes for which the zone data is intended. It also doesn't look as if previous practice has tried to maintain this information in a meaningful way, other than perhaps in the comments. For example, the UK during the 1980s and early 1990s had DST dates officially set separately by Statutory Instrument for each year, but the individual decisions tended to follow a consistent pattern that the "europe" file describes by three multi-year "Rule" entries. -zefram