Hey guys,
I live in Arizona (No DST, ever). when DST was active in CA, my iphone said my timezone was in Cupertino. now it says Denver. neither is correct.
I've found a workaround for this bug. it's a bit more work, but it will work and will handle the spring onset of DST.
in the text, below, I'm going to use "Phoenix" because that's my timezone; substitute your city for Phoenix everywhere.
in Settings -> General -> Date & Time, turn "Set Automatically" back on. don't worry about what timezone it says (it'll say Denver right now, and I'm guessing it'll change back to Cupertino in the spring).
Then, get ready for some work, and go to Settings -> Mail, Contacts, Calendars, scroll near to the bottom, tap "Time Zone Support", turn it on, and set your Time Zone to Phoenix.
now go look at your calendar. things may have moved; but now, every item on your calendar, when you edit it, has a timezone as well as a start time and end time.
I was lucky. most of my items had "GMT-0700" as their time zone; this should be functionally equivelant to "Phoenix". I had a few items, though, with "Cupertino" as their timezone, and those items shifted by one hour. I set the time zone on those to "Phoenix" and it fixed their times.
when you create new appointments, it should default to "Phoenix" but you will have the option of setting it to whatever you want.
if apple fixes this bug before spring, we can turn "Time Zone Support" off for good.
if you travel outside of Arizona, turn "Time Zone Support" back off until you get home; appointments will be displayed in your local timezone because the calendar will know they were set in phoenix time (for example: set an appointment for 10am, phoenix, then travel to Cupertino to complain about iOS timezone bugs in person, turn Time Zone Support off when you cross the border, and your appointment should display on your calendar as 9am since it'll be displaying everything in california time. this is actually correct. when you get home and turn time zone support back on, it'll be at 10am again).
alternatively, when you travel, you can set your current timezone manually, in Mail, Contacts, Calendars. so if you fly to new york, when you land, set the timezone to new york. the iphone clock will adjust automatically (because "Set Automatically" is still On). As soon as you set the time zone in Mail, Contacts, Calendars, your 10am arizona time appointment will display as 12pm in your local timezone of new york (the calendar item, if edited, should still say it occurs at 10am Phoenix time)
more reading about time zone support:
http://support.apple.com/kb/HT4504
(they don't mention what happens if you fly somewhere and do update your timezone manually; it should change the display of all your events, though, since it knows what timezone they are in).
this is all a pain, but at least this way, I have explicit control of what timezone I want calendar to display, and what timezone my appointments are in.
previously, ios handled this automatically and correctly. maybe someday it will again. in the meantime, I'll do it myself.