Hi


 


Currently I’m preparing a document to update TZ for one of our customer in Russia due to the following TZ rule.


I think I found a bug in tzdata2014f.tar.gz where the time did not move from 01:59:59 to 01:00:00


 

http://www.timeanddate.com/time/change/russia/moscow?year=2014

 
Using tzdata2014f.tar.gz

 


$ ls -lrt /etc/localtime


lrwxrwxrwx  1 root root 33 Aug 29 13:05 /etc/localtime -> /usr/share/zoneinfo/Europe/Moscow


 


$ /usr/sbin/zdump -v /etc/localtime | grep 201


/etc/localtime  Sat Mar 27 22:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 MSK isdst=0 gmtoff=10800


/etc/localtime  Sat Mar 27 23:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 MSD isdst=1 gmtoff=14400


/etc/localtime  Sat Oct 30 22:59:59 2010 UTC = Sun Oct 31 02:59:59 2010 MSD isdst=1 gmtoff=14400


/etc/localtime  Sat Oct 30 23:00:00 2010 UTC = Sun Oct 31 02:00:00 2010 MSK isdst=0 gmtoff=10800


 


/etc/localtime  Sat Mar 26 22:59:59 2011 UTC = Sun Mar 27 01:59:59 2011 MSK isdst=0 gmtoff=10800


/etc/localtime  Sat Mar 26 23:00:00 2011 UTC = Sun Mar 27 03:00:00 2011 MSK isdst=0 gmtoff=14400


 


/etc/localtime  Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400


/etc/localtime  Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800


 


Set the date to Sun Mar 27, 2011 (Russia is abolishing DST time)


 


$ date -s "Sun MAR 27 01:59:00 MSK 2011"


Sun Mar 27 01:59:00 MSK 2011


 


Monitor the date


 


$ while true; do date; sleep 2; done:


:


Sun Mar 27 01:59:57 MSK 2011


Sun Mar 27 01:59:59 MSK 2011


Sun Mar 27 03:00:01 MSK 2011 ß good


Sun Mar 27 03:00:03 MSK 2011


:


 


Set the date to Sun Oct 26, 2014 (Russia back to European DST in October 2014)


 


$ date -s "Sun OCT 26 01:59:00 MSK 2014"


Sun Oct 26 01:59:00 MSK 2014


 


Monitor the date


 


$ while true; do date; sleep 2; done


:


Sun Oct 26 01:59:57 MSK 2014


Sun Oct 26 01:59:59 MSK 2014


Sun Oct 26 02:00:01 MSK 2014   ß Not good. Should move from 01:59:59 to 01:00:00


Sun Oct 26 02:00:03 MSK 2014


:


 


If I test again using Europe/Moscow for year 2010, it works fine for that year


 


$ zdump -v Europe/Moscow | grep 2010


Europe/Moscow  Sat Mar 27 22:59:59 2010 UTC = Sun Mar 28 01:59:59 2010 MSK isdst=0 gmtoff=10800


Europe/Moscow  Sat Mar 27 23:00:00 2010 UTC = Sun Mar 28 03:00:00 2010 MSD isdst=1 gmtoff=14400


 


Europe/Moscow  Sat Oct 30 22:59:59 2010 UTC = Sun Oct 31 02:59:59 2010 MSD isdst=1 gmtoff=14400


Europe/Moscow  Sat Oct 30 23:00:00 2010 UTC = Sun Oct 31 02:00:00 2010 MSK isdst=0 gmtoff=10800


 


And it works just fine for Europe/Rome for year 2014 as well


 


$ zdump -v /etc/localtime | grep 2014


/etc/localtime  Sun Mar 30 00:59:59 2014 UTC = Sun Mar 30 01:59:59 2014 CET isdst=0 gmtoff=3600


/etc/localtime  Sun Mar 30 01:00:00 2014 UTC = Sun Mar 30 03:00:00 2014 CEST isdst=1 gmtoff=7200


/etc/localtime  Sun Oct 26 00:59:59 2014 UTC = Sun Oct 26 02:59:59 2014 CEST isdst=1 gmtoff=7200


/etc/localtime  Sun Oct 26 01:00:00 2014 UTC = Sun Oct 26 02:00:00 2014 CET isdst=0 gmtoff=3600


 

Please tell me if it is a bug or something wrong in my testing.
 

Best Regards


Azhar

Support Engineer

Kuala Lumpur

Malaysia