Category Archives: Howto Tutorials (EN)

Knowledge Network for Tutorials, Howto’s, Workaround, DevOps Code for Professionals.

How to Set Time and Date on Linux by timedatectl

Control the system time and date using the timedatectl command in the Linux Shell.

This post shows how to set the time and date in the Linux command line using timedatectl. It is always a good practice to maintain the correct system time. It’s essential and the prerequisite able to allow proper functioning of any service. The command line tool timedatectl use to check and modify time setting.

Run the query usingtimedatectlwithout additional arguments:

$ timedatectl
               Local time: Wed 2021-02-17 17:04:29 GMT
           Universal time: Wed 2021-02-17 17:04:29 UTC
                 RTC time: Wed 2021-02-17 16:57:58
                Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: n

Set time and date by timedatectl

To set-time switch along with the format of time in HH:MM:SS (Hour, Minute, and Seconds):

$ timedatectl set-time 14:09:0

set-time switch along with the format of date in YY:MM:DD (Year, Month, Day):

$ timedatectl set-time 2021-02-1

To set both date and time:

$ timedatectl "2021-02-18 14:09:05"

Check hardware clock

Find out if your hardware clock is set to local timezone:

$ timedatectl | grep local

Set hardware clock

Set your hardware clock to local timezone:

$ timedatectl set-local-rtc

Network time synchronization

Enable network time synchronization.

$ timedatectl set-ntp true
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-ntp ===
Authentication is required to control whether network time synchronization shall be enabled.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===

Ceck status of network time synchronization service.

$ systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2023-07-11 18:16:59 CEST; 1 months 2 days ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 650 (systemd-timesyn)
     Status: "Initial synchronization to time server 84.16.73.33:123 (ch.pool.ntp.org)."
      Tasks: 2 (limit: 4660)
     Memory: 1.3M
        CPU: 11.296s
     CGroup: /system.slice/systemd-timesyncd.service
             └─650 /lib/systemd/systemd-timesyncd

Show current status of systemd-timesyncd.service.

$ timedatectl timesync-status
       Server: 84.16.73.33 (ch.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GPS
    Precision: 1us (-25)
Root distance: 52us (max: 5s)
       Offset: -159us
        Delay: 6.944ms
       Jitter: 531us
 Packet count: 1392
    Frequency: +16.521ppm

Maintain the correct time by timedatectl

The timedatectl command allows you to query and change the configuration of the system clock and its settings. You can use this command to set or change the current date, time, and timezone. Or enable automatic system clock synchronization with a remote NTP server.

Here you walk through the ways you can manage time on your Linux system by setting the date. The time, timezone, and synchronize time with NTP from the terminal using the new timedatectl command.

It is always a good practice to maintain the correct time on your Linux server or system and it can have the following advantages:

  • maintain a timely operation of system tasks since most tasks in Linux are controlled by time.
  • the correct time for logging events and other information on the system and many more.

time and date command

The time extension adds two functions named gettimeofday() and sleep(), as follows. time – time functions for gawk.

$ time

real    0m0.000s
user    0m0.000s
sys     0m0.000s

Display the current time in the given FORMAT, or set the system date.

$ date
Sun 13 Aug 2023 04:44:24 PM CEST

You might also be interested in this related post.

How to Set Linux Time Zone in Console

Change Time Zone for RHEL, Fedora, Ubuntu and Debian Linux using timedatectl command.

This post shows how to query and set the time linux zone in the command line by timedatectl on most Linux distributions. The command line tool timedatectl use to check and modify time zone setting.

Run the query using timedatectl without additional arguments:

$ timedatectl
               Local time: Wed 2021-02-17 17:04:29 GMT
           Universal time: Wed 2021-02-17 17:04:29 UTC
                 RTC time: Wed 2021-02-17 16:57:58
                Time zone: Europe/London (GMT, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Now set the time zone to another zone:

$ sudo timedatectl set-timezone Europe/Zurich

To query the changed time zone setting:

$ timedatectl
               Local time: Wed 2021-02-17 18:05:58 GMT
           Universal time: Wed 2021-02-17 17:05:58 UTC
                 RTC time: Wed 2021-02-17 16:59:27
                Time zone: Europe/Zurich (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

The available time zones showing with the following command:

$ timedatectl list-timezones

Since there are many time zones, the query becomes very long; the query can be narrowed down with grep:

$ timedatectl list-timezones | grep Europe

  The next relevant post might also be helpful. This post Set system locale on Linux shows how to query and set the time zone in the command line.

The timedatectl command allows you to query and change the configuration of the system clock and its settings. You can use this command to set or change the current date, time, and timezone. Or enable automatic system clock synchronization with a remote NTP server.

Here you walk through the ways you can manage time on your Linux system by setting the date. The time, timezone, and synchronize time with NTP from the terminal using the new timedatectl command.

It is always a good practice to maintain the correct time on your Linux server or system and it can have the following advantages:

  • maintain a timely operation of system tasks since most tasks in Linux are controlled by time.
  • the correct time for logging events and other information on the system and many more.

You might also be interested in this related post