How To Use timedatectl Command in Linux with Easy Examples
In this guide, we’ll delve into the practical aspects of using the timedatectl
command in Linux. The timedatectl
command is a powerful and versatile utility available on almost all Linux distributions that utilize systemd as their init system. It provides a straightforward interface for managing your system’s time, date, and timezone settings. You can even leverage it to enable automatic time synchronization with remote NTP (Network Time Protocol) servers. This is critical for maintaining accurate timestamps, crucial for logging, scheduling, and secure network communication.
Moreover, when you adjust the time using timedatectl
, it automatically reconfigures any Real-Time Clocks (RTC) connected to your system to reflect the correct time. This ensures consistency across your system’s hardware and software components. Let’s explore how to effectively use the timedatectl
command in Linux. The timedatectl
command provides a simple way to configure your time settings in Linux.
This guide will demonstrate how to use this Linux command to manage the current timezone, date, and time. Let’s walk through the steps involved in mastering the timedatectl
command.
1. Display Current Status with timedatectl
Simply executing the timedatectl
command without any additional parameters will display the current time, date, timezone, and synchronization status of your system. This provides a quick overview of your current time configuration.
timedatectl
Local time: Fri 2024-02-23 10:30:00 PST
Universal time: Fri 2024-02-23 18:30:00 UTC
RTC time: Fri 2024-02-23 18:30:00
Time zone: America/Los_Angeles (PST, -0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no

2. Set Time Zone with timedatectl
Command
The time displayed by your system is always based on the configured timezone. You can list all available timezones on your Linux system using the timedatectl
command.
timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Algiers
Africa/Bissau
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/El_Aaiun
Africa/Johannesburg
...
Africa/Windhoek
America/Adak
America/Anchorage
America/Araguaina
America/Argentina/Buenos_Aires
...
To set a specific timezone, you can specify it by name, such as "EST" or "GMT," or choose a location within the desired timezone, like "London" or "New York." To change the current timezone to "America/New_York," use the following command:
timedatectl set-timezone "America/New_York"
After setting the timezone, verify the change by checking the status:
timedatectl status

The output will confirm that the timezone has been updated to "America/New_York," and the time will have adjusted accordingly.
3. Set Time and Date Manually in Linux
While using time synchronization services like NTP is generally recommended for maintaining accurate time, there may be situations where you need to set the time and date manually. If time synchronization is enabled, you’ll encounter an error when attempting to set the time directly.
timedatectl set-time 09:30:00
Failed to set time: Automatic time synchronization is enabled
To proceed, you must temporarily stop the time synchronization service.
systemctl stop systemd-timesyncd.service
Now, you can manually set the date and time using the timedatectl
command.
timedatectl set-time "2022-09-30 11:30:00"
Verify the changes with the status command:
timedatectl status
Local time: Fri 2022-09-30 11:30:25 EDT
Universal time: Fri 2022-09-30 15:30:25 UTC
RTC time: Fri 2022-09-30 15:30:25
Time zone: America/New_York (EDT, -0400)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
The date and time will be updated. Note that the system clock synchronization is disabled, and the NTP service is inactive.
To restore automatic time synchronization, restart the service:
systemctl restart systemd-timesyncd.service
timedatectl status
Local time: Thu 2022-09-15 06:41:29 EDT
Universal time: Thu 2022-09-15 10:41:29 UTC
RTC time: Thu 2022-09-15 10:41:30
Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Alternative Solutions for Managing Time in Linux
While timedatectl
provides a comprehensive solution, other methods can also be used to manage time in Linux.
1. Using the date
command
The date
command is a fundamental utility for displaying and setting the system date and time. Although less sophisticated than timedatectl
, it offers a direct way to modify the time.
Explanation:
The date
command can both display the current date and time and set it. However, modifying the date and time using date
directly is generally discouraged on systems with active time synchronization services because these changes might be overwritten by the NTP daemon. This command directly interacts with the system clock and, therefore, requires root privileges. It’s best suited for situations where NTP is not running or needs to be temporarily overridden. The date
command doesn’t inherently handle timezones as elegantly as timedatectl
, so care should be taken to set the correct time in UTC or the intended timezone.
Code Example:
To set the date and time to "October 26, 2024, 14:30:00," you would use the following command. Note that stopping the time synchronization service would be necessary before running this command to avoid conflicts.
sudo date -s "26 OCT 2024 14:30:00"
After setting the time with the date
command, it’s recommended to restart the time synchronization service if it was previously stopped to ensure the system time remains accurate and synchronized. The timedatectl
command offers better integration with systemd and handles timezones more effectively, the date
command remains a useful tool for basic time management.
2. Utilizing NTP Directly with ntpd
or chronyd
Instead of disabling the time synchronization service entirely to manually set the time (as shown when using the timedatectl
command), you can configure and interact directly with the NTP daemon (ntpd
or chronyd
). This approach is more nuanced and allows for finer control over how the system synchronizes its time.
Explanation:
Both ntpd
and chronyd
are NTP daemons used to synchronize the system clock with NTP servers. While timedatectl
manages the high-level settings for time synchronization, these daemons handle the actual synchronization process. By configuring these daemons directly, you can specify which NTP servers to use, adjust synchronization intervals, and even manually force a time synchronization. This approach is useful when you need more control over the time synchronization process than what timedatectl
offers. Interacting with these daemons typically involves modifying their configuration files (e.g., /etc/ntp.conf
for ntpd
or /etc/chrony.conf
for chronyd
) and using their command-line tools (e.g., ntpq
for ntpd
or chronyc
for chronyd
).
Code Example (using chronyd
):
First, ensure chronyd
is installed and running. Then, to force an immediate time synchronization, you can use the following command:
sudo chronyc -a makestep
This command tells chronyd
to immediately correct the system time, even if it requires a large adjustment. This is similar to manually setting the time but leverages the existing time synchronization infrastructure. You can also configure chronyd
to use specific NTP servers by editing the /etc/chrony.conf
file. For example, to use the Google Public NTP servers, you would add the following lines:
server time1.google.com iburst
server time2.google.com iburst
server time3.google.com iburst
server time4.google.com iburst
After modifying the configuration file, restart the chronyd
service:
sudo systemctl restart chronyd
This approach allows for a more controlled and integrated way to manage system time synchronization compared to simply disabling the service and manually setting the time. The timedatectl
command is a valuable tool for managing time in Linux.
Conclusion
This guide has covered the basics of using the timedatectl
command in Linux to control your current timezone, date, and time. By mastering timedatectl
, you can ensure your Linux servers and desktops maintain accurate time settings, which is critical for logging, scheduling tasks, and network communication.
We also explored alternative methods for managing time, including the date
command and direct interaction with NTP daemons. Each method offers different levels of control and complexity, allowing you to choose the best approach for your specific needs. Understanding these different methods enhances your ability to effectively manage time in various Linux environments.