[tz] 2023d zdump with "min" year rule?

Yoshito Umaoka yoshito_umaoka at us.ibm.com
Wed Jan 3 22:37:25 UTC 2024


Dear TZ Database maintainers,

We (Unicode ICU project) preserve time zones deprecated in the TZ database. We keep old systemv file and include these zones in our library. For example,

# SystemV time zones.
# IANA tzdb file 'systemv' file has these SystemV/* zones commented out up to 2020a.
# 'systemv' file was removed in 2020b. We keep them in this supplemental zone data
# file for compatibility purpose.

# Rule    NAME   FROM    TO           TYPE      IN            ON          AT           SAVE      LETTER/S
Rule       SystemV               min        1973      -               Apr         lastSun  2:00       1:00       D
Rule       SystemV               min        1973      -               Oct         lastSun  2:00       0              S
Rule       SystemV               1974      only        -               Jan          6              2:00       1:00       D
Rule       SystemV               1974      only        -               Nov        lastSun  2:00       0              S
Rule       SystemV               1975      only        -               Feb         23           2:00       1:00       D
Rule       SystemV               1975      only        -               Oct         lastSun  2:00       0              S
Rule       SystemV               1976      max        -               Apr         lastSun  2:00       1:00       D
Rule       SystemV               1976      max        -               Oct         lastSun  2:00       0              S

# Zone   NAME                   GMTOFF               RULES/SAVE        FORMAT               [UNTIL]
Zone      SystemV/AST4ADT            -4:00      SystemV                               A%sT
Zone      SystemV/EST5EDT            -5:00      SystemV                               E%sT
Zone      SystemV/CST6CDT            -6:00      SystemV                               C%sT
Zone      SystemV/MST7MDT         -7:00      SystemV                               M%sT
Zone      SystemV/PST8PDT            -8:00      SystemV                               P%sT
Zone      SystemV/YST9YDT            -9:00      SystemV                               Y%sT
Zone      SystemV/AST4    -4:00      -                               AST
Zone      SystemV/EST5    -5:00      -                               EST
Zone      SystemV/CST6    -6:00      -                               CST
Zone      SystemV/MST7  -7:00      -                               MST
Zone      SystemV/PST8    -8:00      -                               PST
Zone      SystemV/YST9    -9:00      -                               YST
Zone      SystemV/HST10 -10:00   -                               HST

ICU data build feeds the extra zone file including above to zic, then run zdump to emit zone offset transitions. Then compare the output with the equivalent output produced by ICU library code. I’m currently working on TZ database 2023d and found this check is failing for SystemV/* with daylight saving time rule. All other zones work fine. With zdump in 2023d, all transitions before 1970 are not reported. For example:

$ zdump -c 1900,1975 -V SystemV/AST4ADT

emits the output below:

SystemV/AST4ADT  Sun Apr 26 05:59:59 1970 UT = Sun Apr 26 01:59:59 1970 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 26 06:00:00 1970 UT = Sun Apr 26 03:00:00 1970 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 25 04:59:59 1970 UT = Sun Oct 25 01:59:59 1970 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 25 05:00:00 1970 UT = Sun Oct 25 01:00:00 1970 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 25 05:59:59 1971 UT = Sun Apr 25 01:59:59 1971 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 25 06:00:00 1971 UT = Sun Apr 25 03:00:00 1971 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 31 04:59:59 1971 UT = Sun Oct 31 01:59:59 1971 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 31 05:00:00 1971 UT = Sun Oct 31 01:00:00 1971 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 30 05:59:59 1972 UT = Sun Apr 30 01:59:59 1972 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 30 06:00:00 1972 UT = Sun Apr 30 03:00:00 1972 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 29 04:59:59 1972 UT = Sun Oct 29 01:59:59 1972 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 29 05:00:00 1972 UT = Sun Oct 29 01:00:00 1972 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 29 05:59:59 1973 UT = Sun Apr 29 01:59:59 1973 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Apr 29 06:00:00 1973 UT = Sun Apr 29 03:00:00 1973 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 28 04:59:59 1973 UT = Sun Oct 28 01:59:59 1973 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Oct 28 05:00:00 1973 UT = Sun Oct 28 01:00:00 1973 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Jan  6 05:59:59 1974 UT = Sun Jan  6 01:59:59 1974 AST isdst=0 gmtoff=-14400
SystemV/AST4ADT  Sun Jan  6 06:00:00 1974 UT = Sun Jan  6 03:00:00 1974 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Nov 24 04:59:59 1974 UT = Sun Nov 24 01:59:59 1974 ADT isdst=1 gmtoff=-10800
SystemV/AST4ADT  Sun Nov 24 05:00:00 1974 UT = Sun Nov 24 01:00:00 1974 AST isdst=0 gmtoff=-14400

This is not a problem with 2023c. 2023c emits transitions starting year 1900 (the first year in the range) to 1975.

I think these are only zones using rule line with “min” year rule. I suspect there is a regression bug in zdump when such rule is used.

-Yoshito Umaoka
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mm.icann.org/pipermail/tz/attachments/20240103/caa0de89/attachment-0001.html>


More information about the tz mailing list