On a number of non-PC systems using uClibc 0.9.28, I have observed that the daylight saving change did not occur at 25 March 2012 01:00, timezone was still GMT. Experimenting with setting various dates, it seems that while the timezone setting seems correct, the change would only occur in April. Observe: # cat /etc/TZ GMT0BST-1,M3.5.0/02:00,M10.5.0/02:00 # date -d 032412002012 Sat Mar 24 12:00:00 GMT 2012 # date -d 032512002012 Sun Mar 25 12:00:00 GMT 2012 ... # date -d 033112002012 Sat Mar 31 12:00:00 GMT 2012 # date -d 040112002012 Sun Apr 1 12:00:00 BST 2012 The change back seems to work: # date -d 102712002012 Sat Oct 27 12:00:00 BST 2012 # date -d 102812002012 Sun Oct 28 12:00:00 GMT 2012 Last year was fine: # date -d 032612002011 Sat Mar 26 12:00:00 GMT 2011 # date -d 032712002011 Sun Mar 27 12:00:00 BST 2011 Next year seems fine as well: # date -d 033012002013 Sat Mar 30 12:00:00 GMT 2013 # date -d 033112002013 Sun Mar 31 12:00:00 BST 2013 Adjusting the TZ will solve the problem: # cat /etc/TZ GMT0BST-1,M3.4.0/02:00,M10.5.0/02:00 # date -d 032412002012 Sat Mar 24 12:00:00 GMT 2012 # date -d 032512002012 Sun Mar 25 12:00:00 BST 2012 This seems to indicate that there is a difference between the 4th and last week, even though 5, meaning the last given day of the month, should do the right thing anyway, more so as any 25th day is the last of that day in any month.
I have since found mention of this in the archives http://www.mail-archive.com/uclibc@uclibc.org/msg07261.html