[Datetime-SIG] IANA TZ database statistics

Chris Angelico rosuav at gmail.com
Thu Sep 24 00:16:44 CEST 2015


On Thu, Sep 24, 2015 at 7:00 AM, Alexander Belopolsky
<alexander.belopolsky at gmail.com> wrote:
> Here are the results for the default Mac OSX system files and the most
> recent Github version of tz [2]:
>
>>>> from datetimetester import *
>>>> ZoneInfo.stats()
> Number of zones:         584
> Number of transitions: 38510 = 19058 (gaps) + 19008 (folds) + 444 (zeros)
> Min gap:                  0:00:16 at 1935-01-01 03:40:52 in
> America/Paramaribo
> Max gap:           1 day, 0:00:00 at 2011-12-30 10:00:00 in Pacific/Apia
> Min fold:                 0:01:31 at 1932-01-01 03:58:29 in America/Barbados
> Max fold:                10:00:00 at 1952-01-13 14:00:00 in
> Antarctica/DumontDUrville
>>>> ZoneInfo.zoneroot = '/usr/local/etc/zoneinfo'
>>>> ZoneInfo.stats()
> Number of zones:         585
> Number of transitions: 39018 = 19434 (gaps) + 19131 (folds) + 453 (zeros)
> Min gap:                  0:00:04 at 1914-01-01 04:00:04 in America/Manaus
> Max gap:           1 day, 0:00:00 at 2011-12-30 11:00:00 in Pacific/Fakaofo
> Min fold:                 0:00:10 at 1906-06-30 16:53:20 in Asia/Ho_Chi_Minh
> Max fold:                23:00:00 at 1969-09-30 13:00:00 in Kwajalein

Neat! (Is that meant to be "from test.datetimetester import *", or was
I loading this up the wrong way? Anyway, not significant.)

A lot of the small numbers are going to be when different places
adopted standard time, and such. To get a better handle on what's
happening _now_, I added an option [1] to your stats function for a
starting year:

>>> ZoneInfo.stats(start_year=1970)
Number of zones:  1790 = 46266 (gaps) + 46130 (folds) + 843 (zeros)
Min gap:                  0:15:00 at 1985-12-31 18:30:13 in right/Asia/Kathmandu
Max gap:           1 day, 0:00:00 at 2011-12-30 10:00:24 in right/Pacific/Apia
Min fold:                 0:30:00 at 2037-04-04 15:00:26 in
right/Australia/Lord_Howe
Max fold:                 3:00:00 at 2012-02-21 17:00:24 in
right/Antarctica/Casey
>>> ZoneInfo.stats()
Number of zones:  1790 = 58914 (gaps) + 58777 (folds) + 1363 (zeros)
Min gap:                  0:00:16 at 1935-01-01 03:40:52 in
posix/America/Paramaribo
Max gap:           1 day, 0:00:00 at 2011-12-30 10:00:24 in right/Pacific/Apia
Min fold:                 0:01:31 at 1932-01-01 03:58:29 in
posix/America/Barbados
Max fold:                10:00:00 at 1952-01-13 14:00:00 in
posix/Antarctica/DumontDUrville

I'm not sure whether this actually helps anything or not, but hey, cool stats :)

ChrisA

[1] https://github.com/Rosuav/cpython/commit/ed51575f7ffe7ba98bfad58a43602cb8f74cfe2a


More information about the Datetime-SIG mailing list