X

Time zone settings not sticking

Users may experience an issue in which time zones do not stick properly. This can happen with new or old machines, and when it occurs, users time will keep resetting to GMT.

CNET staff
2 min read

Users may experience an issue in which time zones do not stick properly. This can happen with new or old machines, and when it occurs, users time will keep resetting to GMT.

Apple Discussions poster himbear writes:

"On my new MBP (late 2008) the time is permanently incorrect. Instead of GMT 1 (central European time) it shows only GMT. I've manually set it several times, ticked time server, closed the lock, reset the PRAM and started up in safe mode; to no avail."

While the time is off, the date seems to be correct and will automatically and correctly reset itself when network time servers are used. In some instances, dead motherboard batteries can result in time and date resets, but usually in these cases the date will reset to a year like 1969. This does not appear to be the problem here, since dates are not touched and time always stays correct to the nearest minute, but reverts its offset back to GMT.

This problem at hand is due to a time zone system file not being properly accessible. OS X has many system configuration files and utilities in hidden folders at the root of the boot drive. These files and folders are hidden because they're required for normal system function and users could inadvertently modify them, resulting in problems. While hiding the files keeps them safe for the most part, it is possible that an update or buggy application could modify them. In this problem, the /etc/localtime file, which should be a symbolic link (alias) to a time zone file stored in another hidden system folder on the drive, is broken. In some instances it might be changed to a folder, and in other instances the link itself has been altered. As such, the system cannot properly set time offsets from GMT, and therefore keeps GMT as the system time.

To fix this problem, users will have to remove or rename the /etc/localtime file and have the system recreate it.

Fix: Remove the /etc/localtime file Open the terminal and enter the following command to rename the localtime file and allow the system to recreate it:

  • sudo mv /etc/localtime /etc/localtime.old

After this command is entered (and users have provided their administrative passwords to complete the command), users should restart their computers and set the time zone again. If everything is working properly, users can then optionally remove the old "localtime.old" file by entering the following command in the terminal:

  • sudo rm /etc/localtime.old

Resources

  • himbear
  • More from Late-Breakers