turn off the “Setting Time Zone” function 🙂 , which is accessible by visiting Settings, and then Location Services, and then System services.
iOS 5′s introduced a bug that causes the Setting Time Zone function to keep the location tracking circuitry running constantly, draining battery power considerably. Switching it off may mean that your iPhone will no longer set its own time zone when you travel, but that’s a small price to pay for having your iPhone last more than 12 hours on a full charge.