I have both an iPhone 4 (from work) and an iPhone 3GS (personal). Today I took a cross country flight from BOS to LAX. Upon boarding the plane this morning, after having stayed up all night packing (and procrastinating from packing), I stowed my bags, put my iPhones in Airplane Mode, and promptly fell asleep. When I woke up after what felt like a long time, I checked the time on my iPhone 4 and was disappointed that only two hours had apparently passed. Then I flipped on the flight map and was surprised to see that we were soon to descend into Los Angeles.
Somehow, despite being in my pocket in Airplane Mode the entire flight, the iPhone 4 had adjusted its clock to the Pacific timezone. Meanwhile, the iPhone 3GS had not. It was still on Boston time.
How did the iPhone 4 know to do this while in Airplane Mode?