In this article, we will walk through the easy and useful ways to Check and Set Timezone in Linux. For reliable system control, you need to know how to handle time correctly on a Linux system, especially a production server.

Linux has many tools for managing time, such as the date and timedatectl commands, which can show you the current timezone and let you sync with remote NTP servers for accurate, automatic time management. Using the correct time zone is essential for many system operations and processes. For example, the system logs and the cron daemon both use the system timezone to date events. Let’s explore the various methods for Check and Set Timezone in Linux.

Checking the Timezone in Linux

We’ll cover several ways to check your timezone on Linux, so you can pick the one that best suits your environment.

Using timedatectl (Common on Systemd-Based Systems)

If your system uses systemd, the timedatectl command provides a straightforward way to check the timezone.

The timedatectl command will output a variety of time-related settings, including your timezone.

timedatectl
timedatectl

This command outputs time-related settings, including your timezone. Look for a line similar to:

Time zone: Asia/Kolkata (IST, +0530)

Quick Alternative: For a concise output that only shows the timezone value, you can run:

timedatectl show -p Timezone --value
timedatectl show -p Timezone --value

This outputs just the timezone, making it useful for scripting.

Using the date Command

Another reliable method, compatible with most Linux distributions, is using date. This command shows the timezone abbreviation.

date +%Z
date +%Z

This command provides a quick timezone check. Note that the abbreviation (e.g., IST, PST) may not specify the full timezone name but is often sufficient for quick reference.

Checking the /etc/localtime Symlink

On all Linux distributions, /etc/localtime is linked to a timezone file in /usr/share/zoneinfo. You can check this link to find the system’s timezone.

ls -l /etc/localtime
ls -l /etc/localtime

The path after -> indicates the timezone, here Asia/Kolkata.

Set Timezone in Linux

To set or change the timezone on your system, use one of the following methods based on your preference and system configuration.

Using timedatectl to Set the Timezone (Systemd-Based Systems)

If your system uses systemd, the timedatectl command is the easiest way to set the timezone.

List Available Timezones
timedatectl list-timezones
timedatectl list-timezones
Set the Timezone
sudo timedatectl set-timezone America/New_York
timedatectl set-timezone

Replace America/New_York with your preferred timezone.

Run timedatectl again to confirm the new timezone setting.

verify timedatectl set-timezone

Linking the Timezone File in /etc/localtime (For Any Linux System)

This method is common and works across all Linux distributions, regardless of init system.

Identify the Desired Timezone File

Timezone data files are located in /usr/share/zoneinfo. For example, the file for America/New_York would be at /usr/share/zoneinfo/America/New_York.

Link the Timezone File to /etc/localtime:
sudo ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
Link the Timezone File to /etc/localtime

Use the date command to check that the system now reflects the new timezone.

Linux offers several methods to check and adjust your system timezone, providing to different init systems and user preferences. If you’re using systemd, you can rely on timedatectl to check and set your timezone. For all Linux users, methods like checking the /etc/localtime symlink or using the date command also work well. By using these tools, you can ensure your system time is accurately synchronized with your local timezone, helping to improve the reliability of logs, scheduled tasks, and time-sensitive applications.

Got any queries or feedback? Feel free to drop a comment below!

Categorized in: