Automatically set time zone by location
Snow Leopard has the ability to automatically set your time zone based on your location. To enable this, go to System Preferences and click on the “Date and Time” section. Under the Time Zone tab, check the “Set time zone automatically by location” option. The map should become greyed out, and your Mac should determine your current location using CoreLocation.
Generally your Mac won’t have GPS, so instead this works by checking the visible Wi-Fi networks against a database of their locations. As a result this only works when your AirPort is turned on, but it isn’t necessary for you to be connected to the internet through it. Of course this also works much more accurately in urban areas where there are lots of Wi-Fi networks around.
If you have connected a GPS device to your Mac and it is recognised by Mac OS X, CoreLocation should switch over to using that. This means that having nearby Wi-Fi networks is not an issue, but you do need to make sure you have GPS signal.
Now when you travel with your Mac, the time zone should automatically update to your new location.
Other applications can also use CoreLocation. For example, Google Latitude asks for access to your location so it can share it with your friends. While an application must always ask your permission for access to your location information, some people still see this as a bit of a privacy and security risk. To disable CoreLocation completely, go to the Security section of System Preferences and check the “Disable Location Services” checkbox under the General tab.