≡ Menu

How To: 2 Methods To Change TimeZone in Linux

Question: When I installed the Linux OS, I forgot to set the proper timezone. How do I change the timezone on my Linux distribution. I use CentOS (Red Hat Linux). But, can you please explain me how to do this on all Linux distributions with some clear examples.

Answer: Use one of the following methods to change the timezone on your Linux system. One of these methods should work for you depending on the Linux distribution you are using.

Method 1: Change TimeZone Using /etc/localtime File

For this example, assume that your current timezone is UTC as shown below. You would like to change this to Pacific Time.

# date
Mon Sep 17 22:59:24 UTC 2010

On some distributions (for example, CentOS), the timezone is controlled by /etc/localtime file.

Delete the current localtime file under /etc/ directory

# cd /etc
# rm localtime

All US timezones are located under under the /usr/share/zoneinfo/US directory as shown below.

# ls /usr/share/zoneinfo/US/
Alaska          Arizona         Eastern         Hawaii          Michigan        Pacific
Aleutian        Central         East-Indiana    Indiana-Starke  Mountain        Samoa

Note: For other country timezones, browse the /usr/share/zoneinfo directory

Link the Pacific file from the above US directory to the /etc/localtime directory as shown below.

# cd /etc
# ln -s /usr/share/zoneinfo/US/Pacific localtime

Now the timezone on your Linux system is changed to US Pacific time as shown below.

# date
Mon Sep 17 23:10:14 PDT 2010

Method 2: Change TimeZone Using /etc/timezone File

On some distributions (for example, Ubuntu), the timezone is controlled by /etc/timezone file.

For example, your current timezone might be US Eastern time (New York) as shown below.

# cat /etc/timezone
America/New_York

To change this to US Pacific time (Los Angeles), modify the /etc/timezone file as shown below.

# vim /etc/timezone
America/Los_Angeles

Also, set the timezone from the command line using the TZ variable.

# export TZ=America/Los_Angeles
Add your comment

If you enjoyed this article, you might also like..

  1. 50 Linux Sysadmin Tutorials
  2. 50 Most Frequently Used Linux Commands (With Examples)
  3. Top 25 Best Linux Performance Monitoring and Debugging Tools
  4. Mommy, I found it! – 15 Practical Linux Find Command Examples
  5. Linux 101 Hacks 2nd Edition eBook Linux 101 Hacks Book

Bash 101 Hacks Book Sed and Awk 101 Hacks Book Nagios Core 3 Book Vim 101 Hacks Book

Comments on this entry are closed.

  • beparas September 29, 2010, 12:30 am

    This is very useful information.
    Thanks.

  • Dharmit Shah September 29, 2010, 2:18 am

    Great stuff. Really handy!

  • charon September 29, 2010, 5:52 am

    Method 1 is bad. Sometimes after updating system this settings reset.

  • James September 29, 2010, 10:56 am

    RHEL/CentOS actually copies files from /usr/share/zoneinfo to /etc/localtime based on /etc/sysconfig/clock settings. Symlinks will be blown away everytime after tzdata update

  • chmurli October 1, 2010, 1:59 pm

    archlinux has one file to configure many cool stuff (timezone, deamons etc) – /etc/rc.conf
    I think there is similar file in slackware and BSD.

  • Anonymous April 12, 2011, 6:10 am

    Great article .

    Regards,
    Ajay Rai

  • Anonymous October 30, 2011, 9:37 pm

    No work on SL6 (another RHEL clone) either. Sorry!

  • chandan June 7, 2012, 2:50 pm

    I tried all these but its not working. These steps works fine on my machine but wondering why its not working on the production machine where it should work.

    Any idea or more methods of changing the timezone?

  • Sai November 8, 2012, 5:43 am

    @chandan :
    What exactly is the issue you are facing ?

  • fabriberloco February 17, 2013, 2:45 pm

    It works, thanks a lot!

  • Mostafa July 4, 2013, 2:06 pm

    thanks a lot it works

  • Pratik August 29, 2013, 7:11 pm

    Try tzselect command….

  • Ben October 22, 2013, 10:31 am

    I found this on another website, but this method worked perfectly:

    Open the terminal. This method will open an ASCII menu that will allow you to choose your timezone. Enter the following command based on the Linux distribution you are using:

    Ubuntu: dpkg-reconfigure tzdata
    Redhat: redhat-config-date
    CentOS/Fedora: system-config-date
    FreeBSD/Slackware: tzselect

    Regards!

  • Anonymous July 22, 2014, 12:13 am

    Its really working i applied in my env just before posting comment

  • grant February 27, 2015, 5:01 pm

    thanks.. very usefull

  • farrukh June 12, 2015, 3:48 am

    The work around working but timezone reverts back once server took reboot.

    Any work around to save the changes done?

    BR
    FArrukh

  • srinivas October 23, 2015, 12:32 am

    thanks so much, really helpful.

  • VikingOy June 21, 2016, 12:59 am

    Using ‘tzselect’ does not seem to modify the /etc/timezone file.
    Using ‘dpkg-reconfigure tzdata’ only shows the current content of the /etc/timezone file with no option to modify it’s content.

  • Dan April 21, 2017, 10:19 am

    Thank you, this was helpful!