Time is an important aspect in Linux systems especially in critical services such as cron jobs. Having the correct time on the server ensures that the server operates in a healthy environment that consists of distributed systems and maintains accuracy in the workplace.
In this tutorial, we will focus on how to set time/date/time zone and to synchronize the server clock with your Ubuntu Linux machine.
Check Current Time
You can verify the current time and date using the
date and the
timedatectl commands. These linux commands can be executed straight from the terminal as a regular user or as a superuser. The commands are handy usefulness of the two commands is seen when you want to correct a wrong time from the command line.
Using the date command
Log in as a root user and use the command as follows
You can also use the same command to check a date 2 days ago
$ date --date="2 days ago"
Using timedatectl command
Checking on the status of the time on your system as well as the present time settings, use the command timedatectl as shown
# timedatectl status
We use the
timedatectl to change system time using the format HH:MM: SS. HH stands for the hour in 24-hour format, MM stands for minutes and SS for seconds.
Setting the time to 09:08:07 use the command as follows (using the timedatectl)
# timedatectl set-time 09:08:07
using date command
Changing time means all the system processes are running on the same clock putting the desktop and server at the same time. From the command line, use date command as follows
# date +%T -s "10:13:13"
• 10: Hour (hh)
• 13: Minute (mm)
• 13: Second (ss)
To change the locale to either AM or PM use the %p in the following format.
# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"
Generally, you want your system date and time is set automatically. If for some reason you have to change it manually using date command, we can use this command :
# date --set=”20140125 09:17:00”
It will set your current date and time of your system into 'January 25, 2014' and '09:17:00 AM'. Please note, that you must have root privilege to do this.
You can use timedatectl to set the time and the date respectively. The accepted format is 'YYYY-MM-DD', 'YYYY' represents the year, 'MM' the month in two digits and 'DD' for the day in two digits.
Changing the date to '15 January 2019', you should use the following command:
# timedatectl set-time 20190115
Create custom date format
To create custom date format, use a plus sign (+)
$ date +”Day : %d Month : %m Year : %Y” Day: 05 Month: 12 Year: 2013
$ date +%D 12/05/13
%D format follows Year/Month/Day format.
You can also put the day name if you want. Here are some examples :
$ date +”%a %b %d %y” Fri 06 Dec 2013
$ date +”%A %B %d %Y” Friday December 06 2013
$ date +”%A %B %d %Y %T” Friday December 06 2013 00:30:37
$ date +”%A %B-%d-%Y %c” Friday December-06-2013 12:30:37 AM WIB
List/Change time zone
Changing the time zone is crucial when you want to ensure that everything synchronizes with the Network Time Protocol. The first thing to do is to list all the region’s time zones using the list-time zones option or grep to make the command easy to understand
# timedatectl list-timezones
The above command will present a scrollable format.
Recommended timezone for servers is UTC as it doesn't have daylight savings. If you know, the specific time zones set it using the name using the following command
# timedatectl set-timezone America/Los_Angeles
To display timezone execute
# timedatectl | grep "Time"
Set the Local-rtc
The Real-time clock (RTC) which is also referred to as the hardware clock is independent of the operating system and continues to run even when the server is shut down.
Use the following command
# timedatectl set-local-rtc 0
In addition, the following command for the local time
# timedatectl set-local-rtc 1
Check/Change CMOS Time
The computer CMOS battery will automatically synchronize time with system clock as long as the CMOS is working correctly.
hwclock command to check the CMOS date as follows
To synchronize the CMOS date with system date use the following format
# hwclock –systohc
To have the correct time for your Linux environment is critical because many operations depend on it. Such operations include logging events and cron jobs as well.
If you have any questions or feedback, feel free to leave a comment.