Does Android (4.0 +) automatically sense what time zone the device is in and change the time display accordingly? The title pretty much states my question but mainly I want to know if I say hope a flight in NY to California will android pick up on the time difference between the time zones? Or do I Manually need to set this?

The reason I am asking is for an app I am developing and the way I see it adding duplicate code of something that android already has is pretty much re-inventing the wheel.
Assuming you're on a network that is available on the location you are going to, you could check the Automatic date and time setting under Date and time settings. That should update the time accordingly.