Red Hat Bugzilla – Bug 60747
Daylight Time defined in TZ fails for Southern Hemisphere
Last modified: 2016-11-24 10:14:13 EST
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.4.9-21 i686)
Description of problem:
If the period of Daylight Savings Time (DST) is defined in the environment
variable TZ (format per 'man tzset') for a locality in the Southern Hemisphere
(where the seasons are reversed), Linux ignores the part of DST between Jan 1st
and the resumption of Standard Time (usually occurring in the March-April
Version-Release number of selected component (if applicable): glibc-2.2.4-19.3
Steps to Reproduce:
1. Export TZ with DST definition for a locality in the Southern Hemisphere,
Australia/NSW: "export TZ=AST-10ADT,M10.5.0/2,M3.5.0/3".
2. Set the Linux clock to various dates throughout the year -or- use the
mktime() function in a C program to simulate such dates.
3. Run the 'date' command at the command line -or- use a simple C program to
report the simulated dates. (A test program will be attached.)
Actual Results: Dates between Jan 1st and (for this example) the last Sunday in
October are reported as being in Standard Time. Dates between the last Sunday
in October and Dec 31st are reported as being in DST.
Expected Results: Dates between Jan 1st and the last Sunday in March should
also be reported as being in DST.
The same problem exists for DST definitions in TZ anywhere in the world in the
TZif files work correctly, whether used from /etc/localtime or defined in TZ,
"export TZ=:Australia/NSW". (Note however that the timezone abbreviations for
Australia in the TZif files are EST for both Standard and Daylight Times.)
Created attachment 47500 [details]
Contains a shell script "tz_test" and source code "show_zones.c".
Fixed in glibc-2.2.4-24.