I’m submitting this as a bug, too, but was advised to do both, so… here we are in the forums.
In CP, my Admin > Localization Settings are set to
Server Time Zone = UTC -5:00 Eastern Standard Time
Daylight Saving Time = Yes
My personal user account’s Localization Settings are set the same:
Time Zone UTC -5
DST checked/yes
So I wrote a simple one-line script to test:
Date = {current_time format="{DATE_RSS} %T”}
I added the %T for a reason that I’ll explain.
When I’m logged in, I get:
Date = Fri, 07 Sep 2012 14:00:02 -0400 EDT
^^ That is correct
When I’m not logged in, and the system is using its own localization, I get:
Date = Fri, 07 Sep 2012 13:00:07 -0400 EST
^^ Note how the system has reduced the time by one hour. This is bad because *it’s the wrong time*. The time is 14:00 -0400 or 13:00 -0500, but it’s not 13:00 - 0400. See what I mean? Bug. Bad bug.
But here’s the thing… in Admin > Localization settings you have but one option about time zone: “Server Time Zone”—and the thing is, our server is smart enough (like most servers are) to account automatically for DST. So right now our server is on UTC -4:00 because we’re in Eastern Time and on DST. But I have it set to UTC -5:00 with DST set to “Yes” because that *seems* appropriate. But if I set it to uTC-4:00 then EE gets it right…
Except displaying the time zone NEVER shows a “D”—it either shows EST or AST, but it’s not smart enough to show the “D”... unless I’m logged in and then it shows EDT just fine.
See how messed up this is?
Edit: This is also in Bug Tracker as Bug ID 18220