(I've also sent this reply directly to Azhar.)


> $ 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


The situation here is that there are two instants in Moscow in 2014 when wall clocks are to read 1:59:00: one just prior to when clocks are adjusted, and one an hour after that. When you use the date command as above, it must pick which of the two instants to use; here it has picked the second one, so you don't see a clock shift after a couple of seconds.

You should be able to verify this by modifying your script to output both Moscow and universal time.

    @dashdashado


On Fri, Aug 29, 2014 at 5:47 AM, 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