• Learn how to set or update the time zone on your Linux server or workstation using timedatectl or symbolic links. This guide covers each step, from verifying the current time zone to listing and configuring new settings to keep your system’s time accurate and synchronized

    Time zones are a critical part of keeping your system synchronized, especially when dealing with servers or distributed systems across different locations. Linux provides an easy way to check, set, and update the time zone on your workstation or server using the timedatectl command or by creating symbolic links. This guide will walk you through two common methods for configuring your Linux time zone.

    Method 1: Setting the Time Zone with timedatectl

    Step 1: Check the Current Time Zone

    Before changing anything, it’s important to verify the current time zone setting. Run the following command to check the system’s time zone and time status:

    This will output information like the following:

    Local time: Tue 2019-12-03 16:30:44 UTC 
    Universal time: Tue 2019-12-03 16:30:44 UTC
    RTC time: Tue 2019-12-03 16:30:44
    Time zone: Etc/UTC (UTC, +0000)
    System clock synchronized: no
    systemd-timesyncd.service active: yes
    RTC in local TZ: no

    Here, you’ll notice details such as the Time zone, which in this case is set to Etc/UTC. You can also check if your system clock is synchronized or if the RTC (Real-Time Clock) is set to local time.

    Additionally, you can run the following command to confirm where the system is pointing for time zone information:

    #!bash
    $ sudo ls -l /etc/localtime

    For example, the output might be:

    #!bash
    lrwxrwxrwx 1 root root 27 Dec 3 16:29 /etc/localtime -> /usr/share/zoneinfo/Etc/UTC

    This confirms that the system is using the Etc/UTC time zone.

    Step 2: List Available Time Zones

    To choose a new time zone, you can list all available time zones by running:

    #!bash
    sudo timedatectl list-timezones

    You’ll see a list similar to this:

    America/Montserrat
    America/Nassau
    America/New_York
    America/Nipigon
    America/Nome
    America/Noronha
    etc...

    Browse through the list to find the appropriate time zone for your region.

    Step 3: Set the New Time Zone

    Once you know the desired time zone, you can update the system by using the following command format:

    #!bash
    sudo timedatectl set-timezone <your_time_zone>

    For example, to set the time zone to Asia/Manila, use:

    #!bash
    sudo timedatectl set-timezone Asia/Manila

    Step 4: Verify the Change

    After updating the time zone, you can run timedatectl again to confirm the new settings:

    #!bash
    sudo timedatectl

    The output should now reflect the updated time zone. For example:

    Local time: Tue 2019-12-03 13:55:09 EST
    Universal time: Tue 2019-12-03 18:55:09 UTC
    RTC time: Tue 2019-12-03 18:02:16
    Time zone: America/New_York (EST, -0500)
    System clock synchronized: no
    systemd-timesyncd.service active: yes
    RTC in local TZ: no

    For more details on using timedatectl, refer to the official timedatectl Man Page.

    Method 2: Changing Time Zone Using Symbolic Links

    If for any reason you cannot use timedatectl, you can manually set the time zone by updating the symbolic link for /etc/localtime. Follow the steps below.

    Step 1: Remove the Existing Time Zone Link

    First, remove the current time zone symlink by running:

    #!bash
    sudo rm -rf /etc/localtime

    Step 2: Create a New Symlink for the Desired Time Zone

    Next, create a new symlink that points to your desired time zone. For example, to set the time zone to America/New_York, you would run:

    #!bash
    sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime

    Step 3: Verify the Change

    To confirm that the time zone has been successfully updated, you can check the date and time by running:

    #!bash
    date

    The output should now display the correct local time based on the new time zone. For example:

    Tue Dec 3 14:10:54 EST 2019

    Refer to the Linux Man Page for date for additional options with the date command.

    Additional Resources

    For further details on Linux time configuration, refer to the following resources:

    1. Systemd Time and Date Configuration – Covers options for system time management in systemd-based distributions.
      Systemd Time and Date Configuration
    2. Ubuntu Time Zone Configuration – Detailed guide on time zone settings in Ubuntu.
      Ubuntu Time Zone Configuration Guide
    3. Red Hat Enterprise Linux 8 System Time Guide – Red Hat documentation covering timedatectl and NTP synchronization.
      RHEL 8 System Time Guide

    Conclusion

    Whether you are using a Linux workstation or server, updating the time zone is a straightforward process using either the timedatectl command or by manually creating a symlink for /etc/localtime. Keeping your system’s time accurate ensures that logging, scheduling, and other time-sensitive operations run smoothly.

    By following the methods outlined in this guide, you can quickly verify, set, or change the time zone on your Linux system.