Not too many people are paying attention, but the Energy Policy Act of 2005 lengthened daylight saving time by four weeks in the US. Instead of beginning the first Sunday of April and running through the last Sunday in October, daylight saving time will now stretch from the second Sunday in March to the first Sunday in November. The Washington Post has an article today about the change and what impact it might have on automated systems:
The change takes effect this year -- on March 11 -- and it has angered airlines, delighted candy makers and sent thousands of technicians scrambling to make sure countless automated systems switch their clocks at the right moment. Unless changed by one method or another, many systems will remain programmed to read the calendar and start daylight saving time on its old date in April, not its new one in March.
The article mentions that older Microsoft products like Windows XP SP1 and Windows NT4 might require manual updates and Daring Fireball has had a few updates about how the switch effects Mac users, including this piece at TidBITS. But what about everything else? Is the version of Movable Type I'm using going to make the adjustment? What about Wordpress? Perl? Ruby? PHP? Java? Linux? I'm sure the current versions of all these programs and languages address the issue, but are there fixes and patches for those running old versions of Perl on their server?
If you've got any information about programs, applications, and languages affected by the change and how to address the problem, leave a comment on this thread. I'll update the post as information comes in.
For the Solaris machines we use, there was a fairly simple patch. As I understand it, an update to a few directories full of time zone definition files.
Our proprietary machines use a Plan 9 derived OS. The time zone / DST functionality was not standardized. The fix consisted of porting over the standard UNIX way of doing things.
Coincidentally, I helped a customer update a machine last night so they could do some advance testing. I logged in to check, and the transition occurred OK.
It's an issue that needs to be addressed closer to operating system level than application. I think!
To me, making this change is a huge disruption. I would like to see evidence that this change results in substantial savings.
Arizona and Hawaii once again wisely opted out from this scheme, but Canada, strangely, complied. Perhaps it's time to annex them, after all.
Again, the U.S. will be different from everyone else in the World... not only we'll have different measurement units, but now we'll have different standards on when to go DST.
Why don't we make our 24-hour days be 25-hours in the process.
=(
The latter category probably applies primarily to older enterprise applications, and to little mickey-mouse one-off programs. Anything that is Java-based should be taken care of with the appropriate Java update, and anything that isn't should be taken care of with the appropriate OS update (if available).
As an aside, I swear I never quite adjust to daylight savings, and am always glad to be back in standard time.
Any electronics or device that implements DST tracking and does so from its own internal database was already broken -- as noted, not all states participate in DST. In Illinois it's on a county-by-county basis.
And the US is hardly the only country that has DST, or the only country that changes DST. Brazil changes when it starts and stops yearly, since the legislature has to vote on it. Some years they don't even have DST. And yet, somehow, their IT infrastructure survives.
date --date="Mar 25 15:00:00 UTC 2006"
Sat Mar 25 10:00:00 EST 2006
and then
date --date="Mar 25 15:00:00 UTC 2007"
Sun Mar 25 11:00:00 EDT 2007
As you can see, the output differs for 2006 and 2007. That
indicates that [the system includes the] changes required by the
"Energy Policy Act of 2005," which mandates new dates for
transition between Standard Time and Daylight Saving Time
starting in 2007.
if the output is the same, you need to do the update.
via centos list archive
and another good thread about updating.
zdump -v TIMEZONE | grep 2007
That will show you the discontinuities in that timezone for 2007. (Try "America/Eastern" or "EST5EDT" for TIMEZONE.) Here's sample output on an unpatched server:
EST5EDT Sun Apr 1 06:59:59 2007 UTC = Sun Apr 1 01:59:59 2007 EST isdst=0
EST5EDT Sun Apr 1 07:00:00 2007 UTC = Sun Apr 1 03:00:00 2007 EDT isdst=1
EST5EDT Sun Oct 28 05:59:59 2007 UTC = Sun Oct 28 01:59:59 2007 EDT isdst=1
EST5EDT Sun Oct 28 06:00:00 2007 UTC = Sun Oct 28 01:00:00 2007 EST isdst=0
And here's sample output on a patched one:
EST5EDT Sun Mar 11 06:59:59 2007 UTC = Sun Mar 11 01:59:59 2007 EST isdst=0 gmtoff=-18000
EST5EDT Sun Mar 11 07:00:00 2007 UTC = Sun Mar 11 03:00:00 2007 EDT isdst=1 gmtoff=-14400
EST5EDT Sun Nov 4 05:59:59 2007 UTC = Sun Nov 4 01:59:59 2007 EDT isdst=1 gmtoff=-14400
EST5EDT Sun Nov 4 06:00:00 2007 UTC = Sun Nov 4 01:00:00 2007 EST isdst=0 gmtoff=-18000
Daylight Saving Time Strategy Test Plan.doc
Worthwhile reading.
http://www.stickyminds.com/s.asp?F=S11856_ART_2
Time zones have been a major PHP annoyance for a long time. If you just want to display and parse times and dates in the local server time, there's no problem. But applications like Textpattern, Wordpress and the like are designed to work on shared servers where the local server time probably doesn't match the user's time zone. In this type of situation, "leaving it to the OS" isn't an option.
Until PHP 5.1 there was no reliable, cross platform way to adjust a timestamp to a specific time zone. Applications had to implement ugly hacks to allow user-selectable time zones. Most of them use a simple offset that doesn't automatically adjust for DST. That's not going away anytime soon: the new TZ features in PHP 5.1 are still incomplete, and most shared hosting services are still running PHP 5.0 or 4.4.
The problem hasn't suddenly appeared with the US DST changes. Many countries have arcane and variable rules for when daylight saving begins and ends, or if it is observed at all. Often different states or provinces within a single Zone will have different rules.
This thread is closed to new comments. Thanks to everyone who responded.

