Azhar, What is the result when you run the following? $ zdump -vc 2014,2015 Europe/Moscow Do you see the expected transition reflected in that output, like this? Europe/Moscow -9223372036854775808 = NULL Europe/Moscow -9223372036854689408 = NULL Europe/Moscow Sat Oct 25 21:59:59 2014 UT = Sun Oct 26 01:59:59 2014 MSK isdst=0 Europe/Moscow Sat Oct 25 22:00:00 2014 UT = Sun Oct 26 01:00:00 2014 MSK isdst=0 Europe/Moscow 9223372036854689407 = NULL Europe/Moscow 9223372036854775807 = NULL Since your zdump output prints "UTC" instead of "UT", it looks like you're using a zdump version before 2013e. So you might be using older data than you think, too; the Russian transition for 2014-10-26 is present in 2014f and later. -- Tim Parenti On 29 August 2014 05:47, azhar saleh <seper5@hotmail.com> wrote:
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