[tz] data not represented in tzfiles

Zefram zefram at fysh.org
Thu Sep 5 11:20:34 UTC 2013


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



More information about the tz mailing list