Wednesday, August 8, 2012

How to Change the Timezone in Linux

Change the Timezone in Linux

Most modern Linux distributions have user-friendly programs to set the timezone, often accessible through the program menus or right-clicking the clock in a desktop environment such as KDE or GNOME. Failing that it's possible to manually change the system timezone in Linux in a few short steps.


  1. Logged in as root, check which timezone your machine is currently using by executing `date`. You'll see something like Mon 17 Jan 2005 12:15:08 PM PST, PST in this case is the current timezone.

  2. Change to the directory /usr/share/zoneinfo here you will find a list of time zone regions. Choose the most appropriate region, if you live in Canada or the US this directory is the "America" directory.

  3. If you wish, backup the previous timezone configuration by copying it to a different location. Such as
    mv /etc/localtime  /etc/localtime-old

  4. Create a symbolic link to the appropriate timezone from /etc/localtime. Example:
    ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime 

  5. If you have the utility rdate, update the current system time by executing 
    /usr/bin/rdate -s

  6. Set the ZONE entry in the file /etc/sysconfig/clock file (e.g. "America/Los_Angeles")

  7. Set the hardware clock by executing:
    /sbin/hwclock --systohc


  • The time server parameter for rdate can be any public server that supports the RFC-868 time protocol. A list of public RFC-868 servers can be found at [2]. Note: As of April 2007, NIST announced it would phase out support for RFC-868 (scroll to the bottom of [3] to see the announcement). This has not happened as of April 2009).
  • On some versions of RedHat Linux, Slackware, Gentoo, SuSE, Debian, Ubuntu, and anything else that is "normal", the command to display and change the time is 'date', not 'clock'
  • On RedHat Linux there is a utility called "Setup" that allows one to select the timezone from a list, but you must have installed the 'redhat-config-date' package. < note... on RHEL5 it is actually 'system-config-date' >
  • On mobile phones and other small devices that run Linux, the time zone is stored differently. It is written in /etc/TZ, in the format that is described, for instance, in [4]. Edit this file manually or use echo (for instance, echo GMT0BST > /etc/TZ to set the the timezone of the United Kingdom).
  • To setup UTC :
  • vi /etc/sysconfig/clock and change the UTC line to: "UTC=true"
  • On systems that use dpkg (for example Debian and Ubuntu/Kubuntu), you should try "sudo dpkg-reconfigure tzdata". This will set up everything correctly in very few, simple steps.

No comments:

Post a Comment