I have just been testing some software to ensure it works properly with
daylight saving, and have found what seems like a bug in Solaris. The time
zone I'm using is Australia/NSW, which reverts from daylight saving time to
normal time on the last Sunday in March (well, this year, anyway) when 3:00am
becomes 2:00am. The standard time is 10 hours ahead of UTC.
The last Sunday in March this year is the 30th, but when I step the Unix
time through I find that the time seems to go backwards at 17:00 on the 29th
of March when I display it using ctime() or strftime(). This means that the
Unix time values of 859611600 and 859615200 both display Sat Mar 29 16:00.
I would think it might be a configuration problem except that mktime() seems
to successfully convert times to UTC so that the change occurs at 3:00am on
the 30th. Both functions seem to work fine in October when going to
daylight saving time. Considering it's happening 10 hours early, it sounds
like the timezone offset has been applied twice at some point.
I'm using Solaris 2.5.1 with (as far as I know) no patches applied (but I
really don't know). I'm having trouble convincing myself that nobody else
would have noticed a bug like that, but I couldn't find a mention of it in
the FAQ or on dejanews. Maybe I didn't look hard enough.
Any clues would be appreciated, as I really don't want to have to write my
own time and date stuff to get around that. I've done that once in my life
and that was plenty.
Ian Evans, Melbourne Australia (yes, I know Melbourne isn't in NSW).