How to Set Date Using Command-Line in Linux

  1. Using the date Command
  2. Using timedatectl Command
  3. Using Python to Set Date and Time
  4. Conclusion
  5. FAQ
How to Set Date Using Command-Line in Linux

Setting the date and time in Linux through the command line can seem daunting, especially for newcomers. However, mastering this skill is essential for system administration, troubleshooting, and ensuring your applications run smoothly. Whether you need to synchronize your system clock or set it manually for testing purposes, Linux provides powerful command-line tools to accomplish this.

In this article, we will explore various methods to set the date and time using the command line, focusing on practical examples and clear explanations. By the end, you’ll have the confidence to manage your system’s date and time effectively.

Using the date Command

One of the simplest ways to set the date in Linux is by using the date command. This command allows you to display and set the system date and time. To set the date, you typically need superuser privileges, so you’ll often use sudo to execute the command.

Here’s how you can set the date to, say, March 15, 2023, at 10:30 AM.

sudo date --set="2023-03-15 10:30:00"

Output:

Wed Mar 15 10:30:00 UTC 2023

This command uses the --set option to specify the new date and time. The format is straightforward: YYYY-MM-DD HH:MM:SS. After running this command, you should see the updated date and time reflected in your terminal.

The date command is versatile. You can also use it to set the date in different formats, such as MMDDhhmmYY (month, day, hour, minute, year). For example, if you wanted to set the date to March 15, 2023, at 10:30 AM using this format, you would write:

sudo date 0315103023

Output:

Wed Mar 15 10:30:00 UTC 2023

This method is quick and efficient, making it a popular choice among Linux users. Just remember that changes made with the date command are temporary and will revert after a reboot unless you set the hardware clock.

Using timedatectl Command

Another powerful tool for managing date and time in Linux is timedatectl. This command is part of the systemd suite and provides a more comprehensive approach to managing system time settings. With timedatectl, you can not only set the date and time but also configure time zones and synchronize with network time servers.

To set the date to March 15, 2023, at 10:30 AM, you would use the following command:

sudo timedatectl set-time "2023-03-15 10:30:00"

Output:

Set the time successfully.

Using timedatectl is advantageous because it automatically updates the system clock and can persist across reboots. After executing this command, you can check the current date and time settings by simply running:

timedatectl

Output:

                      Local time: Wed 2023-03-15 10:30:00 UTC
                  Universal time: Wed 2023-03-15 10:30:00 UTC
                        RTC time: Wed 2023-03-15 10:30:00
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes

This command gives you a comprehensive view of your current date and time settings, including the time zone and whether your system clock is synchronized with a network time protocol (NTP) server. The timedatectl command is especially useful for systems that require precise timekeeping, such as servers and applications that rely on accurate timestamps.

Using Python to Set Date and Time

If you’re looking for a programmatic way to set the date and time in Linux, Python can be a powerful ally. The os module in Python allows you to execute shell commands directly from your scripts. This can be particularly helpful for automation tasks where you need to adjust the system date and time based on certain conditions.

Here’s a simple Python script that sets the date to March 15, 2023, at 10:30 AM.

import os

date_command = 'sudo date --set="2023-03-15 10:30:00"'
os.system(date_command)

Output:

Wed Mar 15 10:30:00 UTC 2023

In this script, we import the os module and define a string variable date_command that contains the shell command we want to execute. The os.system() function runs the command in the shell. This method is useful for integrating date and time adjustments into larger Python applications or scripts.

To run this script, make sure you have the necessary permissions to execute the sudo command without being prompted for a password, or run the script as a root user. This approach allows for greater flexibility and can be easily adapted to set different dates or times based on program logic.

Conclusion

Setting the date and time using the command line in Linux is a vital skill for anyone working with this operating system. Whether you choose to use the date command, the timedatectl command, or even Python scripts, each method offers its unique advantages. Understanding these tools will not only enhance your efficiency but also ensure your system runs smoothly. As you become more familiar with these commands, you’ll find that managing your system’s date and time becomes second nature. Happy coding!

FAQ

  1. How do I check the current date and time in Linux?
    You can check the current date and time by simply typing the date command in the terminal.

  2. Can I set the date and time without superuser privileges?
    No, setting the date and time typically requires superuser privileges, so you will need to use sudo.

  3. What happens to the date and time settings after a reboot?
    If you set the date and time using the date command, the changes will revert after a reboot unless you set the hardware clock.

  4. How can I synchronize my system clock with an NTP server?
    You can use the timedatectl set-ntp true command to enable NTP synchronization.

  5. Is it possible to set the date and time using a script?
    Yes, you can use Python or shell scripts to automate the process of setting the date and time.

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe

Related Article - Linux Date